2015-06-19 2 views
1

Я импортирование JSON, где объекты имеют много массивов атрибуты, такие как изображения:Как импортировать атрибут массива с MagicalRecord в CoreData

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

В настоящее время я просто:

[ExampleObject MR_importFromArray:objectArrayFromJson]; 

но эти массивы это автоматический импорт, поскольку он не может автоматически соответствовать NSArray NSData (двоичный код при настройке модели в Xcode).

Есть ли способ изменить файлы класса модели (например, настраиваемые сеттеры/геттеры), чтобы MagicalRecord мог импортировать мой массив и сохранить его в атрибуте сущностей, и когда я его получаю, я получаю NSArray в ответ?

ответ

1

Я решил это сам после некоторых исследований, и я хочу поделиться им с тем, кто может застрять с той же проблемой.

Моя проблема заключалась в том, что я хотел сохранить NSArray в атрибуте сущности типа NSData. Для того, чтобы быть в состоянии сделать это с MagicalRecord мне нужно реализовать метод в моем NSManagedObject м-файл, как это:

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

так импортировать <; атрибут-имя без;> метод должен быть вызван.

EDIT: Согласно this page, вы возвращаете ДА, если ваш код обрабатывает данные. Возвратите НЕТ, если вы хотите, чтобы MagicalImport продолжал обрабатывать атрибут и использовал стандартные процедуры импорта.

Смежные вопросы