我使用了MagicalRecord
,并且在使用它时遇到了一些麻烦。
服务器向我发送一个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 :(得分:0)
我猜MR_importFromObject会检查对象是否存在插入或更新行为。
这对大多数情况来说都很棒。 (它是为90%http://www.cimgf.com/2012/05/29/importing-data-made-easy/而制作的) 但你是10%(我也是,如果它可以有任何支持)
此行为意味着有查找对象的请求以及更新它的请求。多个对象的数量,可能是巨大的。
您可以参考一个好的苹果文档(有效实现查找或创建的部分):
一个技巧是只对要更新的所有对象发出一个请求,并且一个请求全部更新它们。它的内存使用情况更糟,但在I / O方面更好,这应该可以加快你的速度。
我们采用另一种方式使用TMCache并为经常更改的对象存储原始JSON。
希望得到这个帮助。