2010-03-18 4 views
2
[sessionController.currentSession addObserver:self 
          forKeyPath:@"sessionState" 
           options:(NSKeyValueChangeSetting) 
           context:NULL]; 

Cela ne semble pas fonctionner.Objective-C valeur-clé d'observation

La classe dans laquelle ce code se connecte connaît le module sessionController et a accès à la session en cours. La variable sessionState de currentSession est ce que je veux observer. Est-ce verboten de définir l'objet à observer de la façon dont je l'ai fait ici?

Si oui, comment le faire? Court de donner à l'objet observant une variable currentSession.

+0

vous avez implémenté 'observerValueForKeyPath: ofObject: changez: context:' self self? Et vous avez veillé à ce qu'il ne soit jamais appelé? –

+0

Aussi, quel est le type de currentSession? –

+0

Oui, observeValueForKeyPath: ofObject: change: context: est implémenté dans self, et travaille pour d'autres choses. Il n'est pas appelé du tout - même en dehors de la commutation - pour cela. Il est appelé à d'autres choses, comme il se doit. Current Session est une sous-classe de NSManagedObject, pour laquelle j'ai des fichiers .h et .m réels. – mwt

Répondre

0

Est-ce que sessionController.currentSession contient une valeur valide lorsque vous appelez la méthode?

Ceci est un piège courant, et l'envoi d'un message à null échouera silencieusement.

Questions connexes