잠시 동안 MOC 및 대기열을 처리 한 후에도 올바른 방법으로 대기열에 MOC를 사용하는 방법을 잘 모르겠습니다. 나는 별도로 MOC의 각 유형을 해결할 수 있습니다 :NSManagedObjectContext 및 대기열
NSMainQueueConcurrencyType
이것은 실제로 간단합니다. 그것은 메인 큐에서 실행되어야한다고 말합니다. 이는 [context performBlock:block]
을 사용하거나 메인 스레드를 직접 형성하여 사용할 수 있습니다.
을 생성하는 것보다 다른 스레드에 의해 사용되지 않습니다 그 항상 같은 스레드를 사용하겠다고 약속하지 않습니까?코드가 주 스레드에서 실행되는 경우 블록 기반 API 대신 직접 주 큐 스타일 컨텍스트에서 메서드를 호출 할 수 있습니다.
NSConfinementConcurrencyType
그 문맥 즉, 큐에 대해도 직렬 사람을 의미합니까 당신이 그것을
NSPrivateQueueConcurrencyType
컨텍스트 만들고
내가 [context performBlock:block]
를 통해 모든 처리를 위해이 큐를 사용해야합니까 개인 큐를 관리?
NSMainQueueConcurrencyType
과 비슷한 방식으로 정의한 단일 직렬 대기열에서 직접 사용할 수 있습니까?
또는 다른 말로
는 다음을 수행하는 것이 안전합니다 :NSOperationQueue *workQueue = [[NSOperationQueue alloc] init];
workQueue.maxConcurrentOperationCount = 1;
[workQueue addOperationWithBlock:^{
// It just creates a new MOC with some parent
_context = [SUDataManager createChildContext];
// .... Do things with context without [_context performBlock:block]...
}];
아래 답변은 해결책을 제공 했습니까? – SwiftArchitect