[英]Retain Count after function call. should i worry?
我通常不檢查保留計數,直到程序泄漏。 但是今天(我不),我檢查了保留數,現在我很困惑。
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)。
通常,檢查保留計數不是調試內存泄漏的好方法,因此,只要您了解要分配/釋放內存的位置,我就不必擔心太多。 在這里,您可以自動釋放錯誤消息並手動釋放alertError,所以我認為您還可以。
我猜這兩個額外的保留都在UIAlertView
。 它必須至少保留一次錯誤消息字符串才能正常工作。 第二個保留可能只是一些內部實現細節。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.