如何释放ACTUAL内存而不仅仅是指向内存的指针?

Rex*_*ids 1 pointers memory-management objective-c

我正在释放东西,但根据乐器,记忆似乎依旧存在.我只是发布指针而不是实际数据吗?如何在objective-c中发布数据?[anObject release]或者有[&anObject release]什么区别?

请原谅我对记忆和指针主题缺乏了解.

bbu*_*bum 6

[anObject release];
Run Code Online (Sandbox Code Playgroud)

具体来说,你说的是对象1.如果它发生降至零递减其保留计数-它可能不适合各种各样的原因-那么Objective-C的运行时将调用该方法-dealloc,然后将调用-release上所有对象类型实例变量(以及free()malloc内存,如果有的话).

这里没有魔力. release只是一个方法调用,就像任何其他方法调用.鉴于这个问题,我建议你阅读这个:

http://developer.apple.com/IPhone/library/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

而且,一旦你消除了调用方法的神秘主义,请阅读本文以充分理解iPhone上的内存管理:

http://developer.apple.com/iphone/library/documentation/Cocoa/Conceptual/MemoryMgmt/MemoryMgmt.html