Tha*_*nks 7 iphone release dealloc
我想我知道区别,但不知道如何正确解释.
dealloc完全立即删除该变量保留的内存.
release将该变量的内存的retain计数器递减-1.如果它是1,那么它是0,所以它会在那一刻产生与dealloc相同的效果.
是对的吗?还是有更好的简短解释?
Jak*_*čar 13
这是完全正确的.
但是dealloc在使用对象时你不会使用,因为你不知道保留计数是什么.你也不在乎.你只需要说你不再需要它了release.一旦没有人这样做,该对象就会dealloc自行调用.
一切都正确,但你缺少的一个关键点是你永远不应该自己调用dealloc.以下是Apple关于NSObject dealloc方法的文档中的一些信息:
您永远不会直接发送dealloc消息.相反,通过释放NSObject协议方法间接调用对象的dealloc方法(如果释放消息导致接收者的保留计数变为0).有关使用这些方法的更多详细信息,请参阅Cocoa内存管理编程指南.
子类必须实现它们自己的dealloc版本,以允许释放对象消耗的任何额外内存 - 例如动态分配的存储空间,用于解除分配对象拥有的数据或对象实例变量.在执行特定于类的释放后,子类方法应该通过消息将dealloc的超类版本合并到super:
| 归档时间: |
|
| 查看次数: |
1737 次 |
| 最近记录: |