Je ne vérifie généralement pas le nombre de retenues avant que le programme ne fuie. Mais aujourd'hui (je donno y) j'ai vérifié le compte de retenue et maintenant je suis confus.Conserver le compte après appel de fonction. dois-je m'inquiéter?
NSString *strErrorMessage;
strErrorMessage= [NSString stringWithFormat:@"Email and Password are mandatory"];
NSLog(@"%d", [strErrorMessage retainCount]); // retain count 1
[objAppDelegate ShowMesssage:strErrorMessage];
NSLog(@"%d", [strErrorMessage retainCount]); // retain count 3
return;
Je ne comprends pas. Comme je n'attribue pas strErrorMessage, je dois le libérer rite?
qui possède le propriétaire de strErrorMessage.
-(void) ShowMesssage: (NSString *)strError
{
UIAlertView *alertError = [[UIAlertView alloc] initWithTitle:strTitle message:strError delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertError show];
[alertError release];
}
Dois-je libérer strError ici? (Je pensais pas, mais ce nombre vers le retenir 3).
En outre, les retenues supplémentaires peuvent être traitées par une autorelease à un moment donné, même si le nombre de rétention devrait être inférieur, vous ne pouvez jamais être sûr. – deanWombourne
donc je ne devrais pas m'inquiéter de la retaincount droit? devrais-je libérer le string-strErrorMessage après avoir fait l'appel de la fonction dans le premier code? –
aussi il serait utile si vous me dites, qui a la propriété d'une chaîne (variable) si je le passe comme une variable à une fonction? –