2014-09-18 5 views
3

NSManagedObjectContextObjectsDidChangeNotification을 사용하면 특정 엔터티가 변경된 경우에만 알림을받을 수 있습니까?하나의 엔터티에 대한 NSManagedObjectContextObjectsDidChangeNotification

내 연락처 정보 나 아바타가 변경 될 때 내보기를 업데이트하고 싶지만 NSManagedObjectContextObjectsDidChangeNotification을 사용하면 데이터베이스에서 변경 될 때마다 알림이 표시됩니다.

NSManagedObjectContextObjectsDidChangeNotification을 사용하면이 작업을 수행 할 수 있습니까?

답변

4

특정 엔터티에 대해서만 트리거 할 수 있다고 생각하지 않습니다. 그러나 알림은 변경된 개체에 대한 정보를 제공합니다.

  • NSUpdatedObjectsKey 삽입 추가 된 모든 객체들의 어레이 -/-
  • NSInsertedObjectsKey 삭제 된 모든 객체들의 어레이 - 어레이

    • NSDeletedObjectsKey 값 : 통지는 사전 3 키를 포함 (사용자 정보)를 포함

    이러한 배열의 내용을 반복하고 특정 개체가 변경되었는지 확인할 수 있습니다. 대략적인 개요는 다음과 같습니다.

    - (void) handleObjectsChangedNotification:(NSNotification*) notification { 
        // Iterate over all of the deleted objects 
        for (NSManagedObject* object in notification.userInfo[NSDeletedObjectsKey]) { 
        } 
    
        // Iterate over all of the new objects 
        for (NSManagedObject* object in notification.userInfo[NSInsertedObjectsKey]) { 
        } 
    
        // Iterate over all of the modified objects 
        for (NSManagedObject* object in notification.userInfo[NSUpdatedObjectsKey]) { 
        } 
    } 
    
  • +0

    변경 알림 userInfo의 NSManagedObject 대신 NSManagedObjectID를 찾는 것이 가장 좋습니다. – quellish

    관련 문제