Jak*_*kub 1 memory-management objective-c ios ios5
我有类似的问题:设置object = nil和[object release] VS [object release]和object = nil有什么区别?
NSMutableArray *myExampleArray = [[NSMutableArray alloc] init];
myExampleArray = nil;
Run Code Online (Sandbox Code Playgroud)
我使用iOS 5.0 自动引用计数,所以实际上我不发布任何对象.所以,如果我将它分配给nil是否等于[myExampleArray release]?
我知道我以后不能使用myExampleArray而不重新初始化它.接下来的问题.清除此NSArray 的最佳方法是什么?
是的,在ARC环境中,您永远不会调用release.因此,为变量赋值nil将释放该对象.
在非ARC环境中,您可以自己进行发布,因此对象会被破坏.但变量仍将指向旧对象地址.但是没有对象了,所以EXC_BAD_ACCESS如果稍后使用变量,你可能会遇到崩溃().如果你也给它指定了nil,那就不会发生.因为变量不再指向旧的对象地址.
你的另一个问题:如果你以后再次需要数组,你可以调用removeAllobjectsNSMutableArray删除所有添加的对象,比如Ankit Gupta已经说过了.这将导致一个空数组,它仍然存活,因此您可以重用它.
| 归档时间: |
|
| 查看次数: |
785 次 |
| 最近记录: |