1

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

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

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

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

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

4

2 回答 2

0

如果不使用 ARC,您应该autorelease反对:

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

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

于 2013-09-03T04:43:21.840 回答
0

如果你不使用ARC,那么你可以需要autoreleaseobject。

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

于 2013-09-03T04:47:17.873 回答