【发布时间】:2015-03-13 04:14:26
【问题描述】:
全部,
我束手无策,试图弄清楚这一点。我有一个 NSViewController ,其中包含一个 NSArrayController 和一个其 dataSource 设置为视图控制器的表。 NSArrayController 在 IB 中设置为包含核心数据实体对象。准备内容和自动重新排列内容设置为是。 MOC 绑定已设置。 filterPredicate 和 sortDescriptor 有绑定。当我的 NSViewController 被加载时,方法 numberOfRowsInTableView: 被调用,但我的 NSArrayController 不包含任何数据。显示/加载所有内容后, NSArrayController 似乎包含数据(如果我添加另一个 Entity 对象,则显示所有对象)。我试过调用重新排列对象,但这似乎不起作用。有什么想法吗?
【问题讨论】:
-
为什么要使用数据源协议?您应该只将表绑定到数组控制器。您可以尝试在 AC 上调用
fetch:withRequest**——没有任何东西绑定到它的排列对象,所以它可能从未获取它们——但是如果你没有得到最后一英里并将控制器绑定到视图。 **fetch推迟到下一次运行循环迭代,所以它在你的数据源方法中没有用,你需要 withRequest 版本。 -
在这种特殊情况下,表格的格式与实体的数据不匹配 1:1。为了使数据对用户更具可读性,我选择使用数据源协议。
标签: macos core-data cocoa-bindings nsarraycontroller