gpt4 book ai didi

ios - 删除 TableView 中的核心数据对象

转载 作者:行者123 更新时间:2023-11-28 13:13:19 25 4
gpt4 key购买 nike

我是 Swift 的新手,我正在学习有关制作手势驱动应用程序的教程。

在教程中, TableView 是从数组对象填充的。

有一个函数可以在用户向左拖动单元格时从 TableView 中删除一个项目。

func toDoItemDeleted(toDoItem: ToDoItem) {
let index = (toDoItems as NSArray).indexOfObject(toDoItem)
if index == NSNotFound { return }

// could removeAtIndex in the loop but keep it here for when indexOfObject works
toDoItems.removeAtIndex(index)

// use the UITableView to animate the removal of this row
tableView.beginUpdates()
let indexPathForRow = NSIndexPath(forRow: index, inSection: 0)
tableView.deleteRowsAtIndexPaths([indexPathForRow], withRowAnimation: .Fade)
tableView.endUpdates()
}

在教程中,数组名为 toDoItems,还有一个名为 ToDoItem 的 NSObject 类。

在我的实现中,我使用 Core Data 而不是数组来填充 TableView 。我创建了一个名为 Tasks 的 NSObject,而不是教程中的 NSObject。

我应该如何更改函数以删除核心数据对象而不是数组对象?

谢谢。

最佳答案

您的问题是您要从数组中删除 NSManagedObject,而不是从托管对象上下文中删除。要从核心数据中删除它,您应该像这样从托管对象上下文中删除它:

managedObjectContext?.deleteObject(toDoItem)
managedObjectContext?.save(nil)

但是,如果您使用 Core Data 来填充 UITableView,我建议您使用 NSFetchedResultsController。可以找到完整的实现 here .

关于ios - 删除 TableView 中的核心数据对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30388395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com