如何将其他 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 变为 nil
使用 setPropertiesToFetch 时将数据保存在 NSManagedObjects