cocoa - 使用 CoreData 自动持久从 NSArrayController 中删除对象

标签 cocoa core-data cocoa-bindings

我有一个 NSTableView,其中一列绑定(bind)到 NSArrayController,表示来自 NSManagedObjectContext 的实体集合。我还有一个“删除”按钮,连接到 NSArrayController 的删除操作,一切正常 - 表格显示数据,当我单击“删除”时,实体将从表格中删除等。

但是,这种删除似乎只发生在对象图中,而从未持久化到磁盘。是否有任何标志或方法可以自动将此类更改持久保存到对象图,或者是为删除按钮引入新的 IBAction 并在 Controller 上显式调用第一个 remove 的唯一方法,并且然后在 NSManagedObjectContext保存

最佳答案

您似乎在谈论两个不同的问题:

  1. “从上下文中删除”与“从集合中删除”以及
  2. 立即保存对上下文的更改。

如果您的内容数组绑定(bind)到其他源,您可以选中内容数组绑定(bind)的“删除时删除对象”选项。如果内容仅仅是您提供的实体的所有实例(即,未建立内容/数组绑定(bind)并且它只是获取所有 Foo 实例),我希望该对象被标记为删除。将更改保存到存储中最终会删除对象。

要立即保存更改,您可能需要自己的单独操作来传递“删除此对象并保存”操作。在这种情况下,您可以执行删除/删除,要求托管对象上下文处理PendingChanges,然后调用保存例程。

关于cocoa - 使用 CoreData 自动持久从 NSArrayController 中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1950501/

相关文章:

ios - 如何编写具有多个排序描述符的 NSFetchRequest?

nstableview - 使用绑定(bind)时如何在基于 View 的 NSTableView 中从 NSTableCellView 触发操作

objective-c - NSTextField 无法全屏工作

ios - 如何使用核心数据类中的所有对象创建一个字符串

cocoa - 为什么 cocoa 使用委托(delegate)而不是继承?

iphone - NSManagedObject属性设置为nil返回0

cocoa - 使用 CoreData 为 NSOutlineView 设置 NSTreeCcontroller

swift - 将 Swift 中的属性绑定(bind)到 NSTextFields

objective-c - 使用 Transforms/Security.framework 的 RSA 加密 + Objective-C

objective-c - 如何实现像 Number 和 Pages 中那样的 Split View?