Question sur la méthode dealloc
Snoopy_87
Membre
Bonjour,
Comme le titre du sujet l'indique, je me pose une question au sujet de la méthode dealloc..
Si je écris ce qui se trouve ci-dessous :
et que dans le code, j'utilise l'object "object_1" et que pour une raison X je le release ailleurs que dans la méthode dealloc. J'aimerai savoir ce qui se passe lorsque la méthode dealloc est appelé ? Cela créera-t-il une erreur ?
Merci d'avance pour vos réponse
Snoopy
Comme le titre du sujet l'indique, je me pose une question au sujet de la méthode dealloc..
Si je écris ce qui se trouve ci-dessous :
<br /><br />-(void) dealloc<br />{<br /> [object_1 release];<br />}<br /><br />
et que dans le code, j'utilise l'object "object_1" et que pour une raison X je le release ailleurs que dans la méthode dealloc. J'aimerai savoir ce qui se passe lorsque la méthode dealloc est appelé ? Cela créera-t-il une erreur ?
Merci d'avance pour vos réponse
Snoopy
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Mais si tu as mis ta variable à nil en plus de faire le release, et que donc une fois dans le dealloc object_1 est alors nil, ça ne fera pas d'erreur.
Tout simplement parce qu'en Objective-C, il est autorisé d'envoyer un message à nil (et cela ne provoque aucun effet).
Par contre pour être tout à fait complet, il est à noter que ta méthode dealloc est incorrecte puisqu'il manque l'appel à "super", chose qu'il doit certainement te signaler par un warning d'ailleurs (en tout cas si tu fais un "Build & Analyze" pour que justement il t'analyse le code surtout au niveau des mauvais usages de la mémoire ou des variables inutilisées etc (même s'ils ne les remonte pas tous, tout ceux qu'il remonte sont à corriger en tout cas)
Envoyer un message à nil est tout à fait légal en ObjC: ça n'a pas d'action.