UIViewController保留计数问题

Öme*_*kal 1 iphone objective-c ios

我正在使用以下代码创建一个新的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];
Run Code Online (Sandbox Code Playgroud)

但是当我查看保留计数时,我的临时视图控制器返回4.

怎么可能?因为它是4,当我解除视图控制器时,我无法将其从内存中删除,我的游戏正在继续播放.(我可以看到AI播放的效果).

zap*_*aph 6

永远不要使用retainCount,它不会像你想象的那样工作.

如果您需要查看对象使用工具的保留,释放和自动释放的位置:

在仪器中运行,在分配中设置"记录参考计数"(您必须停止记录以设置选项).导致选择器运行,停止记录,搜索那里的ivar(datePickerView),向下钻取,你将能够看到所有保留,释放和自动释放发生的位置.

示例截图