ar1*_*106 16 c cocoa-touch memory-management objective-c
有人可以解释之间的差异free(),release,autorelease和dealloc?
Jer*_*myP 18
free()是一个C函数,用于处理通过malloc()其他函数记录的不再需要的内存,以及需要free()来解除其内存的其他函数,例如strdup().
-dealloc 是一个Objective-C选择器,当对象不再由应用程序的任何部分拥有时,由Objective-C运行时发送到对象.
-release是您发送给对象的选择器,表示您放弃了该对象的所有权.一旦对象不归任何人所有,它就会-dealloc被运行时发送给消息.
-autorelease是您发送给对象的选择器,表示您放弃对象的所有权.但是,如果现在没有人拥有该对象,则最终-dealloc将推迟到某个未指定的后续点.事实上,你真正在做的是将你的所有权转移到一个自动释放池,然后它会在它自己被释放(或耗尽)时释放它.
-dealloc除了super在对象自己的-dealloc方法中,您必须永远不会发送到对象.
| 归档时间: |
|
| 查看次数: |
13625 次 |
| 最近记录: |