0
我試圖遵循最佳實踐保存到核心數據在後臺這款蘋果示例代碼,其中包括該代碼:的iOS/Objective-C的:保存到核心數據在後臺線程
NSArray *jsonArray = …; //JSON data to be imported into Core Data
NSManagedObjectContext *moc = …; //Our primary context on the main queue
NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
[private setParentContext:moc];
我主要MOC是保存在一個屬性中。然而,無論我的Alloc初始化一個新的MOC或使用該屬性的一個,我得到的錯誤:
'Parent NSManagedObjectContext must use either NSPrivateQueueConcurrencyType or NSMainQueueConcurrencyType.'
*** First throw call stack:
對此的解決方案是說指定併發類型的MOC如下:
managedObjectContext = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
這應該在主核心數據棧中完成嗎?或者你創建一個新的MOC?我試圖創建一個新的MOC,並得到一個MOC爲空的錯誤。創建第二臺MOC似乎是多餘的,私人一臺可以製造三臺。另一方面,我害怕改變主核心數據棧,因爲它可能會在應用程序中拋出其他東西。
解決此問題的最佳方法是什麼?