代码之家  ›  专栏  ›  技术社区  ›  gburgoon

将NSmutableArray保存到核心数据

  •  20
  • gburgoon  · 技术社区  · 15 年前

    我想向我的核心数据模型中的一个实体添加一个nsmutablearray的nsstring。问题是这不是核心数据中支持的类型。

    我试图创建一个可转换的属性,但问题是我看不到将nsmutablearray转换为nsdata,然后从nsdata返回nsmutablearray的方法。有人知道如何解决这个问题吗?

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

    1 回复  |  直到 12 年前
        1
  •  32
  •   Max B.    12 年前

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

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

    ****编辑:下面介绍如何将阵列存档到NSData中,以便在托管对象中使用它***

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

    基本上,任何符合nscoding协议的类都可以这样归档。nsarray/nsmutablerray已经符合它。他们告诉所有的对象要存档,所以他们也必须遵守。所有这些对象的成员必须一致,等等,就像一棵树。

    因为您的数组符合,而且它是一个nsstring数组(也符合),所以您是黄金。