0

我使用MagicalRecord,並且在使用它時遇到了一些麻煩。如何在不寫入CoreData的情況下將NSDictionary映射到NSManagedObject?

服務器向我發送一個JSON,我儘可能快地將它映射到現有的NSManagedObject並將其提供給該塊。

NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread]; 
[Review MR_importFromObject:dictionary inContext:localContext]; 
[localContext MR_saveOnlySelfAndWait];

而經過:

[[CacheOperation sharedOperation]saveBestRateProductByDict:reviewDict]; 
Review *review = [Review MR_findFirstByAttribute:@"id" withValue:[reviewDict objectForKey:@"id"]];

但是,如果我有很多對象,它需要大量的時間。

如何在不寫入CoreData的情況下將NSDictionary映射到NSManagedObject

回答

0

我猜MR_importFromObject檢查是否存在具有插入或更新行爲的對象。

對於大多數情況來說這很好。 (這是爲90%http://www.cimgf.com/2012/05/29/importing-data-made-easy/) 但你是在10%(我也是,如果它可以是任何支持)

這種行爲意味着有一個請求找到對象,請求更新它。對象的數量可以是多個,可以是巨大的。

你可以參考一個好蘋果DOC(執行部分有效地找到 - 或 - 創建):

https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdImporting.html

一招是讓只有一個要求對所有要更新的對象,和一個更新它們的請求。內存使用情況更糟,但I/O更好,這會加快你的速度。

我們採用另一種方式使用TMCache併爲經常更改的對象存儲原始JSON。

希望得到這個幫助。

相關問題