我想问一个关于iPhone应用程序的愚蠢问题.我是iPhone应用程序的绿色.我在Apple网站上阅读了以下代码.
MyViewController *aViewController = [[MyViewController alloc] initWithNibName:@"MyViewController" bundle:[NSBundle mainBundle]];
[self setMyViewController:aViewController];
[aViewController release];
Run Code Online (Sandbox Code Playgroud)
我有一个问题,第3行的"释放"意味着什么?
它是否清楚地表达了记忆?或程序控制该对象?或其他含义.非常感谢你.
当你有alloc什么东西时,你得到的对象的保留计数为1 - 这意味着此对象当前正被某人使用,因此不应该从内存中删除它.如果你调用retain一个对象,它将增加保留计数,这意味着该对象被两件事物使用.如果保留计数达到0,则意味着该对象不再被任何东西使用,并且可以从内存中删除它.您可以通过调用对象来减少对象的保留计数release.
在你的例子中,aViewController是alloc'd并且在第1行之后保留计数为+1.
然后将其设置为第2行中的视图控制器.此方法用于获取对象的所有权,因此retain它应该用于自己的使用.
第3行,我们不希望与视图控制器有任何关系,所以我们release掌握它.保留计数减少一个 - 现在由新的所有者决定是否在完成后释放它.
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |