Comment obtenir des valeurs de Core Data-Entities pour coder
-
20-08-2019 - |
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
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.