2009-12-03 4 views
2

Je suis en train de configurer une fenêtre d'édition pour qu'un lecteur modifie ses données utilisateur. J'ai tous les champs sur le formulaire d'édition lié à l'entité Core Data appropriée (via un NSArrayController), et j'ai une méthode awakeFromNib installée pour gérer l'appel de l'enregistrement, mais je ne sais pas quoi mettre à l'intérieur la méthode pour obtenir l'enregistrement à afficher. En fin de compte, mon but avec ceci est de le configurer pour que l'application vérifie si une entrée existe pour l'utilisateur, et en créer un pour lui s'il n'y a pas d'entrée dans la table.Appel d'un enregistrement spécifique dans les données de base

Répondre

2

Vous devez utiliser NSObjectController ou NSArrayController au lieu de vous lier directement à NSManagedObject. Les contrôleurs fonctionnent correctement avec les liaisons et vos données s'afficheront correctement et les modifications que vous apportez seront propagées via le contrôleur à votre NSManagedObject.

Vous pouvez définir l'objet utilisé par le contrôleur dans awakeFromNib. Sur NSArrayController, utilisez le message setSelectionIndex:(NSUInteger) index puis, pour éviter une sélection vide, envoyez le message setAvoidEmptySelection:TRUE

Hope that helps.

+0

Ah, je suppose que j'aurais dû clarifier une nuance. J'ai l'entité liée au contrôleur de tableau et le contrôleur lié aux champs, comme vous l'avez suggéré. Mon but ici, en fin de compte, est de m'assurer qu'il y a au moins une entrée dans l'entité afin que je n'obtienne pas de "No Selection" dans tous les champs. – Kaji

+1

Vous pouvez indiquer à NSArrayController d'en sélectionner un à l'aide d'un index et vous pouvez le lui indiquer pour éviter que rien ne soit sélectionné. Consultez la documentation. –

Questions connexes