繁体   English   中英

存储在“测试”中的对象的潜在泄漏

[英]Potential leak of an object stored into “test”

我正在使用Xcode开发应用程序,需要一些帮助。

- (IBAction)test:(id)sender {
    game *test = [[game alloc] initWithNibName: nil bundle: nil];

    [self presentViewController:test animated:YES completion:nil];
}    

我收到以下错误,但我不知道如何解决。

存储在“测试”中的对象的潜在泄漏

如果不使用ARC,则应autorelease对象:

game *test = [[[game alloc] initWithNibName: nil bundle: nil] autorelease];

当您提供控制器时,它将为您保留,但是当您关闭它时,它将为您自动释放。 您当前的代码可能会导致泄漏(除非您在其他地方手动release )。 使用autorelease (或在presentViewController之后显式release )将防止警告和泄漏。

如果不使用ARC,则需要autorelease objcet。

当您制作objcet时,其reatin count将增加1。但是在完成工作后,保留计数不会减少,这就是发生此错误(泄漏)的原因。 因此,如果您使用了自动释放,则autorelease pool在关闭视图控制器后减少retain count从而管理您的retain count

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM