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

  • Rockstar Games

    Rockstar Gam

    17 ŞUBAT 2006
  • Visual Life

    Visual Life

    3 Temmuz 2006
  • WK

    WK

    9 Ocak 2006