0

데이터 가져 오기/저장에 핵심 데이터를 사용하고 있습니다. 내 응용 프로그램에서는 핵심 데이터의 90 %를 사용하고 웹 서비스 API를 사용하여 10 %를 사용합니다. 현재 최적화 작업을하고 있습니다. 이전에 NSOperationQueue 및 GCD 작업을 시도했습니다. performBlock : and - performBlockAndWait : 스레드 연산과 비동기 (백그라운드) 프로세스를 확인했습니다. 이것은 내 코드에 더 적합했다. concurrencytype이 NSPrivateQueueConcurrencyType 인 managedobjectContext를 시작했습니다.코어 데이터의 동시성

** 응용 프로그램 전체에 NSPrivateQueueConcurrencyType 만있는 것이 좋습니까? **

NSManagedObjectContext *private = [[NSManagedObjectContext alloc] initWithConcurrencyType:NSPrivateQueueConcurrencyType]; 

답변

2

어디서나 NSPrivateQueueConcurrencyType을 사용해도됩니다. 그것은 편리하지 않을 수도 있지만 그것은 당신에게 달려 있습니다.

NSMainQueueConcurrencyType의 장점은 코드가 주 대기열에서 실행되는 경우 performBlock 또는 performBlockAndWait이 필요하지 않다는 것입니다. 이러한 메소드는 메인 큐에서 블록을 실행하지만, 메인 큐에 이미있을 때는 차이가 없습니다. 이렇게하면 UI 관련 코드를 더 간단하게 만들 수 있습니다. 사용 여부는 코드에서 편리하게 수행 할 수있는 작업에 따라 사용자의 호출입니다.

+0

하지만 NSPrivateQueueConcurrencyType을 단독으로 사용하면 앱이 다운됩니다. – UnderDog

+1

그런 다음 충돌을 설명하고 오류의 원인이되는 코드를 포함하는 질문을 게시해야합니다. 개인 큐 동시성을 사용하면 문제가 없지만 모든 코드가 올바르게 작성되지 않으면 문제가 될 수 있습니다. –