2010-11-15 21 views
9

Je souhaite obtenir un tableau des attributs de mon NSManagedObject afin que je puisse utiliser KVO pour les exporter. Je peux créer un tableau manuellement et ensuite le parcourir, cependant, j'aimerais obtenir cette liste automatiquement, puis itérer.Tableau des attributs NSManagedObject

Répondre

19

Un objet NSManagedObject est associé à une entité. Utilisez NSEntityDescription-attributesByName et -relationshipsByName. Vous obtiendrez un dictionnaire de chacune de ces méthodes. Il suffit de demander les dicts pour leurs -allKeys.

+0

Merci Josh, j'ai ajouté un autre tag. Je ne vois pas attributeKeys dans le SDK 4.1. Est-ce que ce n'est pas disponible sur l'iPhone? – Pete

+0

Correct. C'est pourquoi le marquage est important. :-) NSEntityDescription n'est pas aussi direct mais ça marche assez bien. Devinez: Les méthodes NSObject que j'ai mentionnées semblent être là strictement pour la magie KVO, qui n'est pas disponible sur iOS. –

+0

Parfait! Je ne peux pas croire que j'ai oublié ça. – Pete

4

Merci Joshua. Voici le code que j'ai utilisé dans le cas où quelqu'un voudrait voir un exemple difficile:

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