2012-09-26 2 views
0

목표 C gurus, 질문 할 질문이 있습니다.두 개의 다른 스레드에서 두 개의 NSManagedObjectContext를 동시에 저장할 수 있습니까?

이제 두 개의 다른 스레드가 각각 NSManagedObjectContext이 할당 된 백그라운드에서 실행 중입니다.

이제 두 가지 질문에 대해 : NSManagedObjectContext 공통/공유 NSPersistentStoreCoordinator을 사용하여 [디스크에 저장]을 저장하는 것이 안전할까요?

즉, 서로 다른 두 개의 백그라운드 스레드가 동시에 디스크에 유지 될 수 있습니까?

고마워요.

답변

1

NSPersistentStoreCoordinator은 스레드로부터 안전하지만 걱정할 필요가 없습니다. NSManagedObjectContext은 저장하는 동안 (저장 중에) 저장소를 잠그는 방법을 알고 있습니다.

그래서 동일한 상점을 공유하는 여러 컨텍스트를 갖는 것이 옳습니다. 이것은 App Store Documentation에서 접근 방식을 권장한다

각 스레드에 대한 별도의 관리되는 개체 컨텍스트를 작성하고 하나의 영구 저장소 코디네이터를 공유 할 수 있습니다.

희망이 있습니다.

+0

감사합니다. 따라서 두 개의 NSManagedObjectContext가 동시에 저장할 수 있다고 가정하는 것이 안전합니까? – lwxted

+0

컨텍스트가 저장 중이면 두 번째 컨텍스트는 첫 번째 작업이 끝날 때까지 대기합니다. 그래서 그들은 두 가지 다른 시간에 발생합니다. –

+1

도움을 주셔서 감사합니다. – lwxted

관련 문제