2011-09-23 2 views
0

CoreData 엔터티의 keyPaths 옵저버를 저장하고 복원 할 수 있는지 궁금합니다.Observer를 CoreData 객체에 안전하게 저장할 수 있습니까?

예 : 내 managedObjectContext에 300 명의 직원이 있습니다. 내가 addObserver를 호출 할 때 처음 삽입 할 때 : .. someValue가 변경되면 일부 Object가 알림을 받도록 모든 객체에 대해.

이제 saveAction :을 (를) 호출하여 저장합니다. 나는 응용 프로그램을 닫습니다. 다시 시작할 때 300x addObserver를 복원하는 좋은 방법은 무엇입니까?

감사합니다. 감사합니다.

편집 : 일명 CoreData 엔티티를 보관 취소 할 때 옵저버를 추가하는 가장 좋은 방법은 무엇입니까? 모델 클래스의 사용자 정의 init()? for 루프에서 Employee의 모든 엔티티를 가져 와서 addObserver를 호출하면됩니까?

답변

2

이 작업을 수행하는 가장 좋은 방법은 Employee 엔티티의 NSManagedObject를 서브 클래스로 만들고 awakeFromFetch 및 awakeFromInsert 메서드를 무시하는 것입니다. awakeFromInsert는 엔티티를 처음 삽입 할 때 호출되므로 기존 코드를 이동하여 옵서버를 거기에 추가 할 수 있습니다. awakeFromFetch는 페칭 할 때 옵저버를 추가하는 곳입니다.

+0

감사합니다.이 메소드를 알지 못했습니다! 그들은 내가 원하는 것을 정확히해야하는 것처럼 들린다. :) – tnull

관련 문제