我对 iPhone 开发比较陌生,所以这可能是我的错,但这与我所看到的背道而驰。:)
我认为我正在创建一个 UIAlertView,它只存在于“if”语句的这个真空中。
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
if(!data)
{
// Add an alert
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Error"
message:@"Unable to contact server"
delegate:nil
cancelButtonTitle:@"Ok"
otherButtonTitles:nil];
NSLog(@"retain count before show: %i", alert.retainCount);
[alert show];
NSLog(@"retain count before release: %i", alert.retainCount);
[alert release];
NSLog(@"retain count after release: %i", alert.retainCount);
return nil;
}
但是,控制台日志让我感到困惑。
retain count before show: 1
retain count before release: 6
retain count after release: 5
我也尝试过添加:
alert = nil;
发布后。这使得保留计数为 0,但我仍然显示泄漏。如果有帮助,泄漏的责任框架是 UIKeyboardInputManagerClassForInputMode。我也在使用 OS 4 Beta 3。
因此,任何人都知道本地 UIAlertView 的保留计数在调用 -show 时如何将自身增加 5?
谢谢你的帮助!