CoreData의 병렬 처리
CoreData의 병렬 처리
주의점
기본적으로 다음과 같은 두 가지를 주의해야 한다.
NSManagedObjectContext
스레드 보안 아님NSManagedObject
스레드 보안 아님모범 사례
NSManagedObjectContext
스레드(대기열)를 지정하여 생성합니다.// メインスレッド用のNSManagedObjectContext
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSMainQueueConcurrencyType];
// バッググラウンドスレッド用のNSManagedObjectContext
NSManagedObjectContext *moc = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType];
NSManagedObjectContext
또는 NSManagedObject
블록에서 performBlock:
및 performBlockAndWait:
를 사용합니다.// 非同期で処理を行う
[moc performBlock:^{
// 非同期処理
[moc save:nil];
}];
// 同期で処理を行う
[moc performBlockAndWait:^{
// 同期処理
[moc save:nil];
}];
친자관계 사용
NSManagedObjectContext
.* 공식 문서Core Data 프로그래밍 가이드 - Apple Developer의
Core Dataによる並列処理
를 확인한 후 처음에 다음과 같은 내용이 쓰여 있어 참고할 수 없습니다.컴레데이터의 병행 처리된 베스트 프레이즈에 따라 이 자료를 집필하던 당시부터 크게 달라졌다.지금은 이 장의 내용을 추천하지 않으니 주의하세요.
디버깅
Xcode가 시작될 때 매개 변수-com.apple.CoreData.ConcurrencyDebug 1
를 지정하여 시작하면 병렬 처리를 위반할 때 예외가 발생하고 알려집니다.
상세 정보Core Data Concurrency Debugging
Reference
이 문제에 관하여(CoreData의 병렬 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/hongmhoon/items/606a352b1e96dfb0bec5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(CoreData의 병렬 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hongmhoon/items/606a352b1e96dfb0bec5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)