2015-06-16 51 views
0

我是Core Data的新手,嘗試在與JSON後端進行通信的應用程序中爲持久對象提供脫機支持。IOS僅在應用程序的特定部分使用核心數據

我對我的模型使用NSObject,現在使用NSManagedObjects。

我只需要在應用程序中的幾個部分保存這些服務器對象,而在其他地方,繼續使用以前的行爲,沒有持久性:

Fetch from server -> Parse JSON response -> Create Objects without persistence to Core Data -> Display in UI 

爲此我使用初始化這樣一個

- (id)initObjectWithJSON:(NSDictionary *)JSONDictionary 
{ 
    self = [super init]; 
    if (!self) { 
    return nil; 
    } 
    self.property1 = JSONDictionary[@"property1"]; 
    self.property2 = JSONDictionary[@"property2"] 
    ... 

} 

我現在必須使用初始化initWithEntity:insertIntoManagedObjectContext:,從而創建一個新的背景下,即使我不希望持久對象的核心數據?

是否有另一種方法來「分離」需要持久性的對象和不需要持久性的對象來繼續使用上面的那些舊方法?

+0

爲什麼你就不能使用普通的頁頭,初始化的非持久性對象 – danielmhanover

+0

我不得不改變我的NSObjects到NSManagedObjects時,我調用alloc-init我得到CoreData:錯誤:無法調用NSManagedObject類上的指定初始值設定項 –

回答

0

初始化它不利用上下文:

NSEntityDescription *entity = [NSEntityDescription entityForName:@"MyEntity" inManagedObjectContext:myMOC]; 
NSManagedObject *unassociatedObject = [[NSManagedObject alloc] initWithEntity:entity insertIntoManagedObjectContext:nil]; 

來源:How to Deal with Temporary NSManagedObject instances?

+0

感謝您的答案,您是否還需要myMOC上下文,或者您也可以在第一行中傳遞nil? –

+0

是的,你需要它。文檔狀態上下文不能爲零 – danielmhanover

相關問題