Bonjour les membres de la famille Stackoverflow!Gestion de la mémoire de l'iPhone
J'ai une question concernant la gestion de la mémoire dans l'iPhone.
Ce que je ne comprenais était en dessous de la méthode
-(void) dealloc
{
// something else to release whatever
// such as Object Created using keyword 'alloc'
// but also Object destroy here its retain value reaches iff 0
// if I do put here NSLog(@"%d", [obj retainCount]); and when it reaches
// not equal to 0 means failure with memory leak.
[super dealloc];
}
Alors suis-je comprends bien? ou Il est encore allumé même si retenir nombre portée> 0 ici?
La raison pour laquelle je demande à cette question parce que,
J'ai vérifié avec
NSLog(@"%d", obj.retainCount);
pour vérifier le nombre de conserver l'objet et reçu la valeur 3. J'ai donc essayé de libérer ici 3 fois pour faire retainCount ici égal à 0, mais le compilateur me donne une erreur critique.
S'il vous plaît, je suis nouveau à la désaffectation de la mémoire et conserver, libérer.
objet que j'ai utilisé était l'objet 'UIImageView' et a créé une autre instance que,
UIImageView *imageView = //da da~ with UIImage
UIImageView *instance;
// at this point retain count was '1'
instance = imageView;
//[imageView retain];
// at this point retain count was '2'
[self.view addSubView: imageView];
// at this point retain count was '3'
[imageView release];// crashes
// at this point retain count was '2'
mais si je
// but if I add retain on the 'instance = imageView'
// such as
instance = imageView; // then
[imageView retain];
// works but still count is 2...
Merci.