SORU
17 Mart 2010, ÇARŞAMBA


CoreData iPhone:/Nasıl bir alt çizgeler içinde tüm değişiklikleri fark edebilirim?

Hangi NSManagedObjects bazıları için kap gibi alt sınıfları bir dizi var bir NSManagedObjectContext var. Yapmak istediğim şey tüm özelliklerini, dernekler, ya da içerdiği nesnelerin özelliklerini/derneklerin herhangi bir değişiklik haberdar olmak için üst düzey bir nesne izlemek.

Bu bağlamda 'hasChanges' bana yeterince vermiyor ayrıntı. Nesnelerin' yöntemi, sadece belirli bir nesne (ve onun topluluğunun bir şey değil) için geçerlidir. isUpdated Bir alt çizgeler için sınırlı bir kapsamda değişiklik gözlemleyebilirim oldu uygun bir (belki de, KVO tabanlı) var mı?

CEVAP
18 Mart 2010, PERŞEMBE


NSManagedObjectContextObjectsDidChangeNotification için veri modeli için tüm değişiklikleri almak dinlemek isteyeceksiniz. Bu işlem aşağıdaki gibi bir kod kullanarak

[[NSNotificationCenter defaultCenter] 
      addObserver:self 
         selector:@selector(handleDataModelChange:) 
             name:NSManagedObjectContextObjectsDidChangeNotification 
           object:myManagedObjectContext];

myManagedObjectContext içerik için herhangi bir değişiklik üzerinde -handleDataModelChange: tetikleyecek.

-handleModelDataChange: yöntem bu gibi bir şey olacaktır

- (void)handleDataModelChange:(NSNotification *)note
{
    NSSet *updatedObjects = [[note userInfo] objectForKey:NSUpdatedObjectsKey];
    NSSet *deletedObjects = [[note userInfo] objectForKey:NSDeletedObjectsKey];
    NSSet *insertedObjects = [[note userInfo] objectForKey:NSInsertedObjectsKey];

    // Do something in response to this
}

Gördüğünüz gibi, bildirim yönetilen nesneleri güncellenen, silinen ve eklenen bilgiler içerir. Bilgi, veri modeli değişiklikleri yanıt olarak hareket etmek gerekir.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011
  • stewmurray47

    stewmurray47

    1 Kasım 2006