Question

J'ai créé dans mon application CoreData une entité avec certains attributs. Imaginez une tableview et un NSArrayController lié. Avec les deux, je crée (et édite) mes entités & Quot; & Quot ;. Ma question est de savoir comment obtenir les valeurs de ces attributs dans mon code. S'il y a d'autres questions: http://twitter.com/xP_ablo

Était-ce utile?

La solution

Vous devez en quelque sorte obtenir une référence à NSArrayController. Si vous chargez vous-même la carte NIB, vous pouvez ajouter une instance IBOutlet à la classe définie en tant que NIB & "File Owner &". Lorsque vous chargez une nib, vous fournissez l’instance du & Quot; File Owner & Quot; de la NIB. classe en tant que propriétaire. Si vous ne chargez pas la NIB vous-même (c'est-à-dire qu'elle est automatiquement chargée par Cocoa en tant que nib / xib MaineMenu de votre application), créez une instance de votre propre classe dans la nib et ajoutez un IBOutlet à cette instance. Vous créez un IBOutlet dans votre classe comme suit:

@interface MyClass : NSObject { //of course your class doesn't have to be a direct descendent of NSObject
    IBOutlet NSArrayController *arrayController;
}

@property (retain,nonatomic,readwrite) IBOutlet NSArrayController *arrayController;

...

@end

@implementation
@synthesize arrayController;

- (void)dealloc {
    [arrayController release];
    [super dealloc];
}
@end

Connectez l'IBOutlet de votre classe au NSArrayController (cliquez sur le propriétaire du fichier dans le premier cas ou sur l'instance de votre classe dans le deuxième cas ci-dessus) et faites-le glisser vers le NSArrayController. Lorsque vous relâchez la souris, vous obtenez une fenêtre contextuelle des IBOutlets dans la source de glissement. Sélectionnez l'IBOutlet que vous avez créé (par exemple & "; ArrayController &" Dans l'exemple ci-dessus).

Une fois le nib chargé (c'est-à-dire après que awakeFromNib soit appelé dans votre classe), vous pouvez accéder à arrayController via la sortie:

NSArray *content = [[self arrayController] arrangedObjects];

et vous pouvez maintenant faire ce que vous voulez avec les valeurs du tableau.

Autres conseils

Si j'ai cette information correcte, vous avez une TableView, liée à un NSArrayController lié à vos données.

La méthode la plus simple: créez un objet IBOutlet dans votre classe (généralement le propriétaire du fichier) et dans Interface Builder, connectez cet objet IBOutlet au NSArrayController. Vous pouvez ensuite obtenir les valeurs dont vous avez besoin à partir de ce tableau.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top