在程序泄漏之前,我通常不会检查保留计数。但是今天(我不知道)我检查了保留计数,现在我很困惑。
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;
我不明白这个。因为我不分配 strErrorMessage,所以我不必按仪式释放它?
谁拥有 strErrorMessage 的所有权。
-(void) ShowMesssage: (NSString *)strError
{
UIAlertView *alertError = [[UIAlertView alloc] initWithTitle:strTitle message:strError delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertError show];
[alertError release];
}
我必须在这里释放 strError 吗?(我认为不需要,但是保留计数 3 是什么)。