我有一个 NSTableView
,其中一列绑定(bind)到 NSArrayController
,表示来自 NSManagedObjectContext
的实体集合。我还有一个“删除”按钮,连接到 NSArrayController 的删除操作,一切正常 - 表格显示数据,当我单击“删除”时,实体将从表格中删除等。
但是,这种删除似乎只发生在对象图中,而从未持久化到磁盘。是否有任何标志或方法可以自动将此类更改持久保存到对象图,或者是为删除按钮引入新的 IBAction 并在 Controller 上显式调用第一个 remove
的唯一方法,并且然后在 NSManagedObjectContext
上保存
?
最佳答案
您似乎在谈论两个不同的问题:
- “从上下文中删除”与“从集合中删除”以及
- 立即保存对上下文的更改。
如果您的内容数组绑定(bind)到其他源,您可以选中内容数组绑定(bind)的“删除时删除对象”选项。如果内容仅仅是您提供的实体的所有实例(即,未建立内容/数组绑定(bind)并且它只是获取所有 Foo 实例),我希望该对象被标记为删除。将更改保存到存储中最终会删除对象。
要立即保存更改,您可能需要自己的单独操作来传递“删除此对象并保存”操作。在这种情况下,您可以执行删除/删除,要求托管对象上下文处理PendingChanges,然后调用保存例程。
关于cocoa - 使用 CoreData 自动持久从 NSArrayController 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950501/