NSManagedObjectContext의 performBlock : 및 performBlockAndWait : 메서드를 추가하여 동시성을 쉽게 만듭니다. 나는 그걸 사용 했었습니다. 잠재적으로 상당히 순진 할 것 같았습니다. 그리고 저는 정말로 묻지 않은 질문이 있다는 것을 깨달았습니다.컨텍스트의 performBlock 외부에서 NSManagedObject를 사용할 수 있습니까?
performBlock 메서드 중 하나에 NSManagedObject 하위 클래스를 만드는 경우 'home'스레드는 상위 컨텍스트의 스레드입니다. NSPrivateQueueConcurrencyType의 경우에는 아마도 다른 스레드에 액세스 할 수 없습니다.
그래서 내 관리 대상 객체에 포함 된 데이터에 액세스하기 위해 performBlock 호출을 수행해야합니까? 아니면 getter를 사용할 때 나를 보호 할 배경 마술이 있습니까? (또는 setters, 나쁜 생각 같아요 ...)
감사합니다. 꽤 많이 생각하고 있었는데 ... 나는 틀렸어. 그들이 기술을 도입 한 곳에서 WWDC 비디오를 다시 볼 필요가 있습니다. 그 일을해야한다는 것을 기억하지 못하기 때문에 ... 다시 한번, 다시보아야 할 WWDC 비디오가 많이 있습니다. – RonLugge
저는 애플 엔지니어가 명시 적으로 'NSManagedObject'에 대한 읽기가 코어 데이터가 캐싱을 수행하고 쓰레드 안전하지 않기 때문에 스레드로부터 안전하지 않다고 명시하고 싶습니다. –