2010-01-23 34 views
1

我有一个Cocoa应用程序,我手动添加了核心数据。我在界面生成器中设置表格以列出数据中的实体(使用NSArrayController),并且这样工作得很好。问题是,当我插入一个新的实体(通过代码)表不更新,直到我重新启动应用程序。当enitiy被添加到核心数据时更新NSTableView

插入实体并保存上下文以使表自动获取更改后,我需要做些什么?

回答

1

我假设你的意思是你想更新你的数组控制器的内容,允许表更新结果。

简答:发送您的阵列控制器一个-fetch:消息。

较长的回答:只有通过数组控制器添加的实体实例在其内容数组通过直接获取请求获取其内容时才会自动显示(即,其内容数组未绑定任何内容时,而是您设置一个实体名称和一个MOC,可能是一个谓词,没有别的)。

+0

谢谢。我试过在保存后发送获取消息,但没有做任何事情。你能指点我一些关于如何实现你的“更长答案”的信息或样本吗?我是Objective-C和可可的新手,并且无法找到有关这些主题的信息。 – 2010-01-23 22:19:35

+0

较长的答案是简短答案的解释。 :-)在你创建实体的实例之后,你是否试过要求托管对象上下文去-processPendingChanges? – 2010-01-23 22:22:51

+0

这个答案仍然有效吗?据我所知,'-fetch:'的结果现在被推迟了。在我的应用程序中,调用此消息并没有帮助。有没有其他的方法来强制更新'NSArrayController'?看起来'-processPendingChanges'混淆了核心数据的自动保存功能,所以我宁愿避免这种情况。任何线索? – markjs 2013-05-14 17:10:08

相关问题