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에 쓰지 않고 을 NSManagedObject으로 매핑 할 수 있습니까?

답변

0

MR_importFromObject는 삽입 또는 업데이트 동작이있는 개체의 존재를 확인합니다.

대부분의 경우 좋습니다.

이 동작을 (그리고는 90 % http://www.cimgf.com/2012/05/29/importing-data-made-easy/ 위해 만들어진) 하지만 (그것이 어떤 지원이 될 수 있다면, 나도) 당신은 10 %에이 개체를 찾을 수있는 요청이며, 의미 업데이트를 요청하십시오. 개체 수가 많으면 많을 수 있습니다.

당신은 (구현이 부분을 효율적으로 찾기 또는-작성) 좋은 사과 문서를 참조 할 수 있습니다 :

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

한 트릭 업데이트 할 모든 객체에 대해 하나의 요청을하는 것입니다, 그들 모두를 업데이트하라는 한 가지 요청이 있습니다. 메모리 사용량은 더 나빠지지만 I/O가 좋으면 속도가 빨라집니다.

우리는 TMCache를 사용하고 자주 변경되는 객체에 대해 원시 JSON을 저장하는 다른 방법을 사용했습니다.

희망 도움말.