2015-06-19 15 views
1

我導入JSON,其中的對象有許多數組屬性,例如圖片:如何導入陣列屬性與MagicalRecord到CoreData

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

目前只是我:

[ExampleObject MR_importFromArray:objectArrayFromJson]; 

但這些陣列打破這種自動導入,因爲它不能自動適應NSArray到NSData(在Xcode中設置模型時的二進制文件)。

有無論如何修改模型類文件(如自定義setter/getters),所以MagicalRecord可以導入我的數組並將其存儲在實體的屬性中,當我檢索它時,我得到一個NSArray?

回答

1

經過一番研究,我自己解決了這個問題,我想分享給可能遇到同樣問題的人。

我的問題是我想將一個NSArray保存到NSData類型的實體屬性中。爲了能夠使用MagicalRecord做到這一點,我需要實現一個方法在我的NSManagedObject M文件是這樣的:

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

所以進口<;屬性名,而不;>方法必須被調用。

編輯: 根據this page如果您的代碼處理數據,則返回YES。如果您希望MagicalImport繼續處理該屬性並使用默認導入例程,則返回NO。