2014年7月10日 星期四

Core Data programmatically using Swift language(Delete data)

【說明】

此份筆記是根據ISBN:978-986-201-900-9這本書的第19章節所紀錄的。

專案範例延續著這篇,新增刪除資料的動作。

刪除一個託管物件是很容易的,只要呼叫deleteObject:方法,並將要刪除的物件作為參數來傳遞,即可刪除資料。


【專案開發步驟】

刪除一個託管物件:

為了要讓UITableView能夠讓使用者使用刪除功能,必須實作UITableViewDataSource協定中的canEditRowAtIndexPath:與commitEditingStyle:方法如下所示。

override func tableView(tableView: UITableView!, canEditRowAtIndexPath indexPath: NSIndexPath!) -> Bool {
    return true

}
決定TableView的Row是否可以被編輯。

override func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) {
            
    var context: NSManagedObjectContext = managedObjectContext()
        
    if editingStyle == .Delete {
            
        context.deleteObject(recipes.objectAtIndex(indexPath.row) as NSManagedObject)
            
        recipes.removeObjectAtIndex(indexPath.row)
        tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
            
    } else if editingStyle == .Insert {

    }   
}
先取得託管物件本文,因為NSManagedObjectContext提供了deleteObject:方法,讓我們可以刪除特定的物件。利用本文執行deleteObject:方法,將選到的indexPath.row刪除。Core Data被刪除後也要將TableView上的資料刪除。


【執行結果】

    


【專案範例】

沒有留言:

張貼留言