Chr*_*ina 0 iphone xcode release objective-c nsarray
我正在使用名为allAvailableServices的 NSArray .首先我初始化它,写完[allAvailableServices release];
之后我检查了条件if(allAvailableServices).它是真实的!我可能知道原因.
然后我写了
allAvailableServices = nil;和 [allAvailableServices release];
上面的代码后,如果(allAvailableServices) 来到false.is有我写的任何问题[allAvailableServices release];后,allAvailableServices = nil;
每当allAvailableServices = nil我需要分配新的array.so如果我没有打电话[allAvailableServices release];我认为有一个内存问题.我是否正确?任何人都可以为我提供最好的处理方式吗?
Release只是回收内存,但指针值没有改变; 它仍然包含一个值,但它指向垃圾.
这就是为什么很多人在释放它之后会把它们的指针弄为:
[allAvailableServices release], allAvailableServices = nil;
Run Code Online (Sandbox Code Playgroud)
在Objective-C中,将消息发送到nil是安全的,但是向已释放的对象发送消息可能会导致应用程序崩溃(通常使用EXC_BAD_ACCESS)
请注意,我在将对象设置为nil之前已经释放了该对象.如果你反过来这样做,你已经丢失了发送消息的指针,所以你泄漏了对象.
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |