Je suis en train d'utiliser la touche de la valeur de l'observation à l'une de mes classes. - Je enregistrer les observateurs dans la méthode init et supprimer/se désinscrire dans le dealloc, mais j'obtiens l'erreur suivante qui semble se produire avant que mon dealloc méthode est appelée, selon mon debug imprime.
Une instance 0x583870 de classe TekkPoint est libérée, tandis que la valeur de la clé observateurs sont toujours enregistrés avec elle. L'Observation de l'info, c'est la fuite, et peut même devenir, à tort, attaché à un autre objet. Définissez un point d'arrêt sur NSKVODeallocateBreak de s'arrêter là dans le débogueur. Voici l'observation courante info: ( Contexte: 0x0, la Propriété: 0x536400> Contexte: 0x0, la Propriété: 0x55aba0> )
Est-il une manière particulière, je devrais supprimer les observateurs? Ou peut-être un endroit en particulier que je devrais les enlever?
Conformément à cette question , je suis en train de faire des choses bien, mais pourquoi j'obtiens ce message d'erreur?
Voici mon dealloc routine:
- (void)dealloc {
// Remove all observers.
for (NSString *path in [TekkPoint observedPaths]) {
[self removeObserver:[option_ tChart]
forKeyPath:path];
}
[description_ release];
[weight_ release];
[super dealloc];
}
Une chose à noter, que peut-être étrange à propos de mon œuvre, c'est que je suis l'ajout et la suppression des observateurs de la observee, cela pourrait-il la cause de mon problème?