21

我想将 NSStrings 的 NSMutableArray 添加到我的核心数据模型中的一个实体中。问题是这不是 Core Data 中支持的类型。

我尝试制作一个可转换的属性,但问题是我看不到将 NSMutableArray 转换为 NSData,然后从 NSData 回到 NSMutableArray 的方法。有谁知道如何解决这个问题?

(我知道我可以存档数组,但我不想这样做,我希望它出现在我的模型中)。

4

1 回答 1

33

您可以在建模对象中有一个二进制数据属性,将数组归档为数据,然后将其交给对象。

但我认为更好的方法是建立一对多关系,而不是直接使用数组。

****编辑:以下是如何将数组存档到 NSData 以便它可以在您的托管对象中使用***

NSData *arrayData = [NSKeyedArchiver archivedDataWithRootObject:[NSArray arrayWithObjects:@"1",@"2", nil]];

基本上,您拥有的任何符合 NSCoding 协议的类都可以通过这种方式归档。NSArray/NSMutableArray 已经符合它。他们告诉他们所有的对象自己存档,所以他们也必须遵守。并且所有这些对象的成员都必须符合,等等。就像一棵树。

由于您的数组符合,并且它是 NSString 的数组(也符合),那么您就是黄金。

于 2009-07-09T14:20:17.850 回答