检索所有 NSTreeController 的对象

Posted

技术标签:

【中文标题】检索所有 NSTreeController 的对象【英文标题】:Retrieving All Of An NSTreeController's Objects 【发布时间】:2009-09-22 06:24:04 【问题描述】:

一点背景信息,我正在使用带有核心数据的 NSOutlineView。 这就是我想要做的:

    从大纲视图树控制器中检索所有对象。

    从每个对象中检索“名称”属性(核心数据)作为字符串。

    最后将所有对象的'name'属性的字符串存储在一个NSArray中。

更多帮助,这里是我的核心数据模型的图片,http://snapplr.com/xqxv

这可能吗?

【问题讨论】:

【参考方案1】:

你不需要去treeController获取你的对象,你可以直接查询你的ManagedObjectContext。

您实际上创建并执行了一个获取请求,该请求返回一个 NSArray。您也在此过程中设置了 fetch 的谓词,因此如果您使用它来尝试过滤您的数据,这也很有用。

这是来自 Apple 文档Fetching Managed Objects 的示例。

【讨论】:

哇!谢谢!一个问题,如何只检索每个对象的“名称”属性的字符串? 您有一个对象数组(步骤1)枚举对象以获取每个对象的名称属性(步骤2)将每个结果附加到数组中(步骤3) 到目前为止,我有这个代码,snapplr.com/wxvg,它将获取托管对象。如何枚举它们以获取 name 属性? 您是否查看过 NSArray 文档,看看是否有帮助?甚至还有一种方法可以为您压缩第 2 步和第 3 步。 我放弃了-NSArray *namesArray = [array valueForKey:@"name"];

以上是关于检索所有 NSTreeController 的对象的主要内容,如果未能解决你的问题,请参考以下文章

给定模型对象,如何在 NSTreeController 中找到索引路径?

从 NSTreeController 中删除具有特定标题的对象

观察 NSTreeController 绑定的核心数据实体以进行插入/删除

NSTreeController/NSOutlineView 失去选择

从 CoreData 刷新 NSTreeController

NSTreeController 基于瞬态 isRoot 异常获取谓词