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
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.
Nasıl Google Haritalar tam dolu olup o...
Nasıl bir jQuery eklentisi yüklü olup ...
JavaScript, Nasıl bir radyo düğmesi se...
Nasıl bir kaydırma çubuğu görünür olup...
Nasıl bir dize null veya boş olup olma...