1

嘿,

我正在用 Xcode 写一些东西。我使用 Core Data 来实现持久性,并使用 Cocoa Bindings 将视图和模型链接在一起;几乎是你普通的 Core Data 应用程序。

我的 Xib 中有一个数组控制器 (NSArrayController)。按照惯例,它的 managedObjectContext 绑定到 AppDelegate,并跟踪实体。到目前为止,一切都很好。

现在,这个 NSArrayController 的“内容集”投标限制了它的内容集(如你所料),通过来自另一个 NSArrayController (otherAc.selection.detailsOfMaster) 中的选择的 keyPath。这是实现主从关系的常用方法。

我想在运行时使用其他控件可变地更改密钥路径。这样,我将返回一个包含其他几个内容集的内容集,这些内容集都是高级的,并且超出了 Interface Builder。

为了实现这一点,我认为我应该将内容集绑定到我的 AppDelegate。我试过这样做,但不知道要实现什么方法。如果我只是创建 KVC 方法(objectSet、setObjectSet),那么我可以在 contentSet 方法中为 Array Controller 提供一个 Content Set。

但是,我认为我没有正确绑定它,因为它不会“刷新”。我是绑定新手;当其他事情(例如主 NSArrayController 中的选择)发生变化时,我需要实施什么来正确更新内容集?

4

1 回答 1

1

但是,我认为我没有正确绑定它,因为它不会“刷新”。

这通常意味着您直接分配给实例变量,而不是使用符合KVC的访问器方法或发布KVO通知。

一般的解决方案是为属性创建访问器方法,然后在任何地方使用它们,包括在该类内部,除了它的initdealloc方法。

于 2010-04-12T14:20:57.940 回答