如何使用MagicalRecord将数组属性导入CoreData

时间:2015-06-19 09:05:02

标签: ios json magicalrecord

我正在导入一个json,其中对象有许多数组属性,如images:

"images": [
    "model1.jpg",
    "model2.jpg"
],
"models": []
    "one model",
    "another model",
    "third model"
]

目前我只是这样做:

[ExampleObject MR_importFromArray:objectArrayFromJson];

但这些数组会破坏此自动导入,因为它无法自动将NSArray适合NSData(在Xcode中设置模型时的二进制文件)。

是否有修改Model类文件(如自定义setter / getters)所以MagicalRecord可以导入我的数组并将其存储在entitys的属性中,当我检索它时,我得到一个NSArray作为回报?

1 个答案:

答案 0 :(得分:1)

经过一番研究后,我自己解决了这个问题,并希望与那些可能遇到同样问题的人分享。

我的问题是我想将NSArray保存到NSData类型的实体属性中。为了能够使用MagicalRecord执行此操作,我需要在我的NSManagedObject m文件中实现一个方法,如下所示:

- (BOOL) importImages: (id) array {
    NSData *imagesData = [NSKeyedArchiver archivedDataWithRootObject:array];
    self.images = imagesData;
    return YES;
}

所以import&lt ;; attribute-name without;>必须调用该方法。

编辑: 根据{{​​3}},如果您的代码处理数据,则返回YES。如果希望MagicalImport继续处理属性并使用默认导入例程,则返回NO。