는 다음과 같이 MR과 함께 간단한 페치를 수행 :메인 스레드를 차단하지 않는 MR_findFirstWithPredicate 대신 사용할 수 있습니까?
Cat* cat = [Cat MR_findFirstWithPredicate:predicate];
시간 프로파일 내 응용 프로그램에서 가장 많은 시간 빨아 먹는 과정의 하나로서이하지 않다고 생각한다. 그리고 사실 MR_findFirstWithPredicate에 대한 스택 추적이 리드 :
+ (NSArray *) MR_executeFetchRequest:(NSFetchRequest *)request inContext:(NSManagedObjectContext *)context
{
__block NSArray *results = nil;
[context performBlockAndWait:^{
NSError *error = nil;
results = [context executeFetchRequest:request error:&error];
if (results == nil)
{
[MagicalRecord handleErrors:error];
}
}];
return results;
}
주 문제의 근본이다 "performBlockAndWait을". 그래서 대체 무엇입니까? 백그라운드에서 페치를 수행하려면 어떻게해야합니까? 메인 스레드를 방지 할 수 있습니다 비 주 스레드에서 관리되는 개체 컨텍스트에서 찾기를 수행
는
내가 당신에게서 매우 비슷한 질문에 몇 일 전에 게시 된이 주제에 애플의 문서를 읽습니까? – Koen
Magical Record는 타사 라이브러리이므로 Apple의 문서에서 다루지 않습니다. – soleil
MR을 가지고 모든 것을 할 필요는 없습니다. 그리고 문제를 더 잘 이해하기 위해 애플의 문서를 읽는 것이 상처를주지 않을 것이다. – Koen