我正在 Xcode 中开发一个应用程序,我需要一些帮助。
- (IBAction)test:(id)sender {
game *test = [[game alloc] initWithNibName: nil bundle: nil];
[self presentViewController:test animated:YES completion:nil];
}
我收到以下错误,我不知道如何解决它。
存储到“测试”中的对象的潜在泄漏
我正在 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
(或显式使用release
)presentViewController
将防止警告和泄漏。
如果你不使用ARC,那么你可以需要autorelease
object。
当您制作对象时,它reatin count
会增加 1。但是在您的工作完成后,您的保留计数不会减少,这就是发生此错误(泄漏)的原因。因此,如果您使用了自动释放,则autorelease pool
在关闭视图控制器后管理您的保留计数会减少retain count
.