SORU
2 Aralık 2010, PERŞEMBE


Nasıl bir `NSManagedObject` silinmiş olup olmadığını söyleyebilir miyim?

Silinmiş NSManagedObject Bir ben var, ve nesne yönetilen bağlam içeren kaydedildi. isDeleted Eğer Çekirdek kalıcı Veri deposu sonraki kaydetme işlemi sırasında nesne silmek isteyeceğini YES döner anlıyorum. Kaydet çoktan beri ancak, isDeleted döner 5**.

Ne NSManagedObject silinmiş olup olmadığını söylemek için iyi bir yoldursonraiçeren bağlamından kaydedildi?

(Diye merak ediyorsanız neden nesne atıfta silinmiş yönetilen nesne değil zaten farkında silme, çünkü silme ve içerik kurtarmaktı tarafından başlatılan bir arka plan iş parçacığı, bu işlem silme ve kaydetme kullanarak performSelectorOnMainThread:withObject:waitUntilDone:.)

CEVAP
2 Aralık 2010, PERŞEMBE


Yönetilen nesne bağlamında kontrol iş gibi görünüyor:

if (managedObject.managedObjectContext == nil) {
    // Assume that the managed object has been deleted.
}

managedObjectContext ... Apple'ın belgeleri

Bu yöntem ise nil döndürebilir alıcı silinmiş bağlam.

Eğer alıcı bir arıza arıyorsanız bu yöntem ateşe neden olmaz.

İkisi de iyi şeyler gibi görünüyor.

GÜNCELLEME:Eğer yönetilen bir nesne özellikle objectWithID: kullanılarak alınan silinmiş olup olmadığını test etmek için çalışıyorsanız, Dave Gallagher's answer check out. O varsa Eğer objectWithID: silinen bir nesnenin KİMLİĞİ kullanarak seni çağırır, nesne, dönen bir hata olacağına işaret etmektedirdeğilnil managedObjectContext olarak ayarlanması gerekir. Sonuç olarak, sadece silinmiş olup olmadığını test etmek için* *13 kontrol edemezsin. Eğer yapabilirsen existingObjectWithID:error: kullanın. Eğer, örneğin, Mac OS 10.5 veya iOS hedeflediğiniz değilse 2.0, silinmesi için test etmek için başka bir şey yapmak lazım. Ayrıntılar için his answer bkz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • amc

    amc

    21 EYLÜL 2005
  • hockeywebcasts

    hockeywebcas

    31 EKİM 2012
  • kimaliz

    kimaliz

    18 Temmuz 2006