我只是在阅读通用应用程序的样板代码,我看到了这个:
- (void)dealloc
{
...
[_navigationController release];
...
}
还有:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
self.navigationController = [[[UINavigationController alloc] initWithRootViewController:masterViewController] autorelease];
...
}
我不确定我是否理解整个下划线的内容,但我认为这是为了保护您不直接访问 ivar,而是通过属性访问它(为什么?我不知道......但我接受这就是它的)。
但是,我没有得到的是,如果self.navigationController
是autorelease
d 那么这肯定会_navigationController
在最后发布时引起问题吗?
更令人困惑的是for中没有retain
位。@property
navigationController
所以据我所知_navigationController
,通过属性访问的navigationController
是autorelease
d ,然后直接访问并在 dealloc 中释放(肯定已经可以自动释放了?)。
大声笑,我希望有人可以解释这里发生了什么!我确信样板代码可能没有错!
谢谢你。