我正在使用以下代码创建一个新的 UIViewController
GameViewController *temp = [[GameViewController alloc] initWithNibName:@"GameViewController" bundle:nil];
NSLog(@"retain count%d", [temp retainCount]);
temp.backgroundMusic = backgroundMusic;
self.gameView = temp;
[temp release];
[self presentModalViewController:gameView animated:YES];
[gameView release];
但是当我查看保留计数时,我的临时视图控制器返回 4。
这怎么可能?因为它是 4,所以当我关闭视图控制器时,我无法将其从内存中删除,并且我的游戏仍在运行。 (可以看到AI玩的效果)。
永远不要使用retainCount,它不会像你想象的那样工作。
如果您需要查看对象的保留、释放和自动释放发生在哪里,请使用工具:
在仪器中运行,在分配中将“记录引用计数”设置为打开(您必须停止记录才能设置该选项)。使选择器运行,停止记录,搜索 ivar (datePickerView),向下钻取,您将能够看到所有保留、释放和自动释放发生的位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)