J'ai un objet lié à l'interface utilisateur avec un NSObjectController. Je suis capable d'archiver l'objet et de le désarchiver plus tard. Cela fonctionne bien jusqu'à présent. Dans le débogueur, je peux voir que l'objet contient les données que j'ai sauvegardées lors d'une session précédente. Le problème restant est: L'interface utilisateur ne s'actualise pas. Je suppose que je dois dire au NSObjectController qu'il doit faire face à un autre objet. Mais je ne sais pas comment. J'ai essayé newObject mais cela n'a pas fonctionné du tout.Cocoa: Actualiser NSObjectController après désarchiver les données du disque
Au moment mon code ressemble à ceci:
if ([aOpenPanel runModal] == NSOKButton)
{
NSString *filename = [aOpenPanel filename];
rpgCharacter = [NSKeyedUnarchiver unarchiveObjectWithFile:filename];
// [myCharacterController DoSomething] ???
}
rpgCharacter devrait être l'objet pour la myCharacterController.
Fonctionne bien. Merci. Donc j'ai besoin de définir l'objet via une propriété ou une méthode accesseur pour déclencher le KVO? Oui, fait parfaitement sens pour moi maintenant. – TalkingCode
Oui. Sauf pour les méthodes d'initialisation où elles doivent être définies directement http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/ObjectiveC/Articles/ocAllocInit.html#//apple_ref/doc/uid/TP30001163-CH22- SW1 – Abizern