好的,这是我的问题。
我将使用CoreData +源列表+ NSTreeController创建类似于Finder(或iTunes(如果需要)的源列表)的内容。
我的问题是,我在源列表中拥有的并不是完全来自CoreData。例如,我有一个使用CoreData填充的名为“来自核心数据的数据”的部分(根),但我还有一些在运行时创建的“假”部分(即“收藏夹”部分)。
因此,我认为使用实体将OutlineView和NSTreeController直接绑定到CoreData是不可行的,而且我必须使用NSMutableArray之类的中间对象,该中间对象首先要填充来自CoreData的数据和使用ad-的“ fake”部分成员的hoc类(例如在Apple的“ SourceView”示例中)。这是第一个问题:(1)我这样做正确吗?
我的第二个问题是关于这个NSMutableArray的。假设使用此数组可能是一个解决方案,我想知道哪种方法是填充数组的正确方法。在示例“ SourceView”中,使用NSTreeController(insertObject :)在运行时填充了中间数组,但这是另一种解决方案我想到的是子类化NSMutableArray并直接更改数组的内容。 (2)我是否以这种方式破坏了MVC?

最佳答案

将持久性节点与仅在运行时存在的临时节点混合的一种方法是将NSInMemoryStoreType存储添加到您的persistentStoreCoordinator。这是有关如何执行此操作的教程:http://simplyhacking.com/source-list-with-core-data.html

09-18 00:43