如何将其他 NSManagedObjects 存储为 NSManagedObject 的属性

Posted

技术标签:

【中文标题】如何将其他 NSManagedObjects 存储为 NSManagedObject 的属性【英文标题】:How to store other NSManagedObjects as property of a NSManagedObject 【发布时间】:2014-02-25 14:36:00 【问题描述】:

我是 ios 编程的新手,我正在开发一个 iOS 应用程序的简单功能。目前,我已经创建了一个名为 Players 的实体,我希望该实体有一个属性,它可以像数组一样在其中存储其他 NSManagedObject。

这是因为我希望玩家能够在游戏中拥有朋友,这也是我所想的;我可以通过

访问玩家的好友列表
[playername friendList]

我可以知道这是否是这样做的方法吗?因为对于实体的属性类型,我不能使用 NSMutableArray 或 NSArray 作为它的类型。如果是,我可以知道如何存储它吗?如果没有,有没有更好的方法来实现?

【问题讨论】:

【参考方案1】:

这是核心数据模型中关系的目的。在两个实体之间添加关系(以及逆向关系)并将托管对象添加到该关系中。

请参阅核心数据指南的this section。

【讨论】:

【参考方案2】:

您需要在模型之间创建关系,这些模型用 NSSet(或 NSOrderedSet,如果顺序很重要,请选中“ordered”)表示。

有序集类似于数组,除了所有对象都是不同的(没有重复)。

【讨论】:

以上是关于如何将其他 NSManagedObjects 存储为 NSManagedObject 的属性的主要内容,如果未能解决你的问题,请参考以下文章

丢弃 NSManagedObjects

核心数据:在表格视图中滚动时,存储在数组中的 NSManagedObjects 变为 nil

如何通过电子邮件发送 NSManagedObject

使用 setPropertiesToFetch 时将数据保存在 NSManagedObjects

如何在 XCode 调试器中调试 NSManagedObjects?

如何将子上下文中的 NSManagedObjects 的两个不同实例合并为父上下文中的单个实例