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。

希望得到这个帮助。

相关问题