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

  • Angry Paintballer

    Angry Paintb

    8 Ocak 2012
  • LiveForGodsKingdom

    LiveForGodsK

    6 NİSAN 2008
  • RayperEnglishKnight

    RayperEnglis

    24 Kasım 2008