2010-11-15 18 views
9

NSManagedObject için öznitelikler dizisi almak istiyorum, böylece bunları vermek için KVO'yu kullanabilirim. Bir diziyi el ile oluşturabilir ve ardından yinelemeyi yapabilirim, ancak bu listeyi otomatik olarak almak istiyorum, sonra yineliyorum.NSManagedObject öznitelikleri dizisi

cevap

19

Bir NSManagedObject, onunla ilişkili bir varlığa sahiptir. NSEntityDescription'un -attributesByName ve -relationshipsByName kullanın. Bu yöntemlerden her birinden bir sözlük alacaksınız. Sadece -allKeys için dicts sor.

+0

Teşekkürler Josh, başka bir etiket ekledim. 4.1 SDK'da attributeKeys göremiyorum. Bu iPhone'da mevcut değil mi? – Pete

+0

Doğru. Bu yüzden etiketleme önemlidir. :-) NSEntityDescription doğrudan değil ama yeterince iyi çalışıyor. Tahmin et: Bahsettiğim NSObject yöntemleri kesinlikle iOS'ta mevcut olmayan KVO büyüsü için var gibi görünüyor. –

+0

Mükemmel! Bunu gözden kaçırdığına inanamıyorum. – Pete

4

Teşekkürler Joshua. Herhangi birinin zor bir örneği görmek istemesi durumunda kullandığım kod şu şekildedir:

NSString *entityName = NSStringFromClass([myEntity class]); 
NSEntityDescription *entityDescription = [self entityDescriptionWithEntityName:entityName]; 
NSDictionary *attributes = [entityDescription attributesByName]; 
NSArray *attributeNames = attributes.allKeys;