从 CoreData 中删除对象(错误)
Delete Object from CoreData (error)
我想从核心数据中删除一个对象。我试过这段代码,但它不起作用。怎么了?我正在使用 Swift 和 Xcode 6.1.1.
代码:
let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext
var daten = [TaskModel]() //CoreData Entity
managedObjectContext!.deleteObject(daten[indexPath.row])
appDelegate.saveContext()
let fetchRequest = NSFetchRequest(entityName: "TaskModel")
daten = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as [TaskModel]
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Right)
daten
是一个空数组。
因此,daten[x]
会崩溃。
在您的情况下,x
是 indexPath.row
,但它会在任何值下崩溃。
如果您尝试通过索引访问空数组的元素,则会出现上述错误。
要从您的抓取结果控制器中获取一个对象并将其删除,
let task = self.fetchedResultsController.objectAtIndexPath(indexPath) as TaskModel
self.fetchedResultsController.managedObjectContext.deleteObject(task)
self.fetchedResultsController.managedObjectContext.save(nil)
来自 Xcode 模板的抓取结果控制器的标准实现将负责自动更新您的 table 视图,您甚至可以免费获得动画。
如果您不使用NSFetchedResultsController
,请停在这里并重构。
我想从核心数据中删除一个对象。我试过这段代码,但它不起作用。怎么了?我正在使用 Swift 和 Xcode 6.1.1.
代码:
let managedObjectContext = (UIApplication.sharedApplication().delegate as AppDelegate).managedObjectContext
var daten = [TaskModel]() //CoreData Entity
managedObjectContext!.deleteObject(daten[indexPath.row])
appDelegate.saveContext()
let fetchRequest = NSFetchRequest(entityName: "TaskModel")
daten = managedObjectContext!.executeFetchRequest(fetchRequest, error: nil) as [TaskModel]
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Right)
daten
是一个空数组。
因此,daten[x]
会崩溃。
在您的情况下,x
是 indexPath.row
,但它会在任何值下崩溃。
如果您尝试通过索引访问空数组的元素,则会出现上述错误。
要从您的抓取结果控制器中获取一个对象并将其删除,
let task = self.fetchedResultsController.objectAtIndexPath(indexPath) as TaskModel
self.fetchedResultsController.managedObjectContext.deleteObject(task)
self.fetchedResultsController.managedObjectContext.save(nil)
来自 Xcode 模板的抓取结果控制器的标准实现将负责自动更新您的 table 视图,您甚至可以免费获得动画。
如果您不使用NSFetchedResultsController
,请停在这里并重构。