Luc*_*cas 7 objective-c ios automatic-ref-counting
在标准的Objective-C手动内存管理下,在这个问题中建议使用的方法来释放NSArray
imageArray = [[NSArray alloc] initWithObjects:[UIImage imageNamed:@"1.png"],
[UIImage imageNamed:@"2.png"],
nil];
Run Code Online (Sandbox Code Playgroud)
是用的
[imageArray release];
imageArray = nil;
Run Code Online (Sandbox Code Playgroud)
鉴于我们不再可以-release
在自动引用计数下使用,在ARC下发布此NSArray的建议方法是什么?
Sve*_*ven 19
要使用ARC你只是删除您retain
和release
邮件,就是这样.所以你摆脱了这样的数组:
imageArray = nil;
Run Code Online (Sandbox Code Playgroud)
这有效并且不会泄漏,因为在ARC下编译器会自动插入必要的retain
和release
调用.
mat*_*ias 12
如果imageArray是对象的ivar(可能不是一个安全的假设),你应该使用一个访问器将数组设置为nil; 访问器将负责释放阵列及其所有成员:
[self setImageArray:nil];
如果您需要清理一个包含许多成员的数组,但在该ivar中保留一个有效的数组,以便其他方法可以安全地向其发送消息,则可以使用以下命令:
[self setImageArray:[[NSArray alloc] init]];
这将用一个新的空数组替换旧数组.
归档时间: |
|
查看次数: |
14693 次 |
最近记录: |