2011-01-17 9 views
17

"description" adlı bir string özniteliğine sahip basit bir Çekirdek Veri var. çarptığında programı çöküyor: Neden Çekirdek Veri varlığı için "açıklama" özelliğini bir öznitelik adı olarak kullanamıyorum?

valueForKey:@"description" 

Ben "metin" ve sorun çözüldü için "açıklama" özelliğini değiştirdi.

Bu neden oluyor?

Çekirdek Verilerde "açıklama" ayrılmış bir anahtar sözcük mü?

NSObject açıklama yöntemini çağırmakla ilişkili midir?

Varsa, bu ayrılmış anahtar kelimeler için bir referans var mı?

cevap

23

(Çekirdek Veri dinamik özellik erişimcisi ve mutators üretir hatırlama - ‘açıklaması’ adlı bir özellik -description denilen bir erişimci yöntemi oluşturarak gerektirecektir). Bu Core Data Programming Guide belgelenmiştir ve NSPropertyDescription Class Reference: a özelliği adı NSObject veya NSManagedObject herhangi bir parametre yöntemi adı ile aynı olamaz

Not olduğu. Örneğin, mülke "açıklama" adını veremezsiniz. NSObject üzerinde, mülkiyet adlarıyla çakışabilecek yüzlerce yöntem vardır ve bu liste, çerçevelerden veya diğer kitaplıklardan uyarı gelmeden büyüyebilir. Çok genel kelimelerden ("font" ve "color" gibi) ve Cocoa paradigmalarıyla ("isEditing" ve "objectSpecifier") örtüşen kelimelerden veya deyimlerden kaçınmalısınız.

4

description, CoreData'da ayrılmış bir anahtar sözcük değil, ancak tüm Objective-C nesnelerine özgü bir özelliktir. NSObject sınıfının bir parçası.

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/description

+0

Bu bir (bildirilmemiş) özellik değildir. Bunun yerine bir yöntem adı ( –

+0

) Çekirdek Veriler Yönetilen Nesne'deki anahtar @ "açıklaması" nı sevmez. NOT: "Açıklama" yöntemi nedir? – Aaronium112

0

Sorunun konusu olan Çekirdek Data'nın çalışma zamanı erişimci nesil olduğunu (Emin değilim gerçi) şüpheli. Çekirdek Veriler, çalışma zamanında nitelikler için erişimcileri (ve ayarlayıcıları) sentezler ve bu erişim sağlayıcıları uygun sınıfa ekler (yeniden çalışma zamanında). Çekirdek Veriler description yöntemini, -[NSObject description]'u geçersiz kılarak ve işlem mantığını vb. Yöntemde oluşturuyorsa, -[NSObject description]'u çağıran herhangi bir kod "kötü" davranabilir. o NSObject yılında -description yöntemiyle ile çakışan Çünkü

İlgili konular