如何将带有 MagicalRecord 的数组属性导入 CoreData

How to import array attribute with MagicalRecord into CoreData

我正在导入 json,其中对象具有许多数组属性,例如图像:

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

目前我正在做:

[ExampleObject MR_importFromArray:objectArrayFromJson];

但是这些数组破坏了这个自动导入,因为它不能自动将 NSArray 适配到 NSData(在 Xcode 中设置模型时的二进制文件)。

是否可以修改模型 class 文件(如自定义 setters/getters)以便 MagicalRecord 可以导入我的数组并将其存储在实体的属性中,当我检索它时我得到一个return?

中的 NSArray

经过一些研究我自己解决了这个问题,我想把它分享给可能遇到同样问题的人。

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

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

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

编辑: 根据 this page 你 return YES 如果你的代码处理数据。 Return 如果您希望 MagicalImport 继续处理属性并使用默认导入例程,则否。