我想将一些对象存储到包含集合以及其他标量变量的核心数据中。
例如,我可能想要保留几千个“机器”对象:
@interface Machine : NSObject <NSCopying>
{
NSString *idNumber;
BOOL existsInLibrary;
NSSet *sections; // Contains a set of NSStrings
NSSet *banks; // " "
NSSet *positions; // " "
NSMutableArray *orientationIDs; // Contains an array of NSNumbers
NSMutableSet *credits; // Contains a set of NSNumbers
}
有许多类似的 SO 问题,但似乎没有关于如何实现这一点的明确共识。我想将集合序列化为二进制数据属性吗?还是我应该使用“可转换”类型?还是我想建立几个一对多的关系?
从我读到的内容来看,这些解决方案中的后者对我最有吸引力,尽管我不确定它是否在我的情况下最有意义,其中集合仅包含 NSNumbers/NSStrings 而不是其他自定义对象(几乎所有使用这种方法的解决方案似乎都被认为是理所当然的)。
如果您能通过解释上述每种策略何时最有效以及您认为我应该应用于我自己的场景来启发我,我将不胜感激!
此外,答案是否应该是“使用一对多关系”——这是否意味着我需要为每个集合类型变量创建一个不同的实体?如果我将其应用于我需要持久化的所有对象,最终这将导致数十个具有一对多关系的实体;这是可以预料的,还是我想错了?
谢谢!!