2012-02-21 3 views
0

나는 coredata 데이타베이스에있는 많은 목표를 새롭게 할 필요가있다. 이 작업을 수행하는 동안 사용자 인터페이스를 차단하지 않고 간단한 HUD를 표시하기 위해 별도의 스레드에서이 업데이트를 수행합니다. 동시성 문제가 생길 수 있습니까?동시성없이 coredata multithread

감사

답변

0

그냥 coredata 저장 된 스레드되지 않도록 조심. 애플에 의해 제공

가능한 해결 방법 :

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

  2. 각 스레드에 대해 별도의 관리되는 개체 컨텍스트와 영구 저장소 코디네이터를 만듭니다. 이 방법은 더 큰 복잡성 (특히 다른 컨텍스트간에 변경 내용을 전달해야하는 경우)과 메모리 사용량이 증가한 을 대가로 더 큰 동시성을 제공합니다. 백그라운드 스레드에서 모델을 업데이트 할 때 첫 번째 옵션을 여러 번 사용하는 경우

. 작동하는 것 같습니다.