She*_*lam 9 iphone cocoa-touch memory-management objective-c
鉴于这两种情况,哪种代码是最佳实践,为什么?
自动释放
loginButton = [[[UIBarButtonItem alloc] initWithTitle:@"Login"
style:UIBarButtonItemStylePlain
target:self
action:@selector(loginButtonClicked:)]
autorelease];
self.navigationItem.rightBarButtonItem = loginButton;
Run Code Online (Sandbox Code Playgroud)
要么
发布
loginButton = [[UIBarButtonItem alloc] initWithTitle:@"Login"
style:UIBarButtonItemStylePlain
target:self
action:@selector(loginButtonClicked:)];
self.navigationItem.rightBarButtonItem = loginButton;
[loginButton release];
Run Code Online (Sandbox Code Playgroud)
Car*_*rum 14
对于你的例子,它并不重要.就个人而言,我可能会使用第一种情况.这样可以让您以后添加修改或调试代码,而无需担心移动[loginButton release]线.
使用自动释放似乎有一种耻辱(即,尽可能优先释放),这就是我通常走第二条路线的原因.但是因为你不在这里循环,所以现在释放与后续自动释放将具有完全相同的效果(因为另一个对象保留了loginButton,它不会被dealloc()编辑).
但是我应该指出,我的大部分内存泄漏都是由于忘记添加释放线造成的,因此最好立即解决自动释放问题.
| 归档时间: |
|
| 查看次数: |
4496 次 |
| 最近记录: |