iPhone - 释放内存

时间:2011-05-28 19:23:19

标签: iphone objective-c memory

是否有一种程序化的方法来释放iPhone的内存,这与重启iPhone一样有效?

非常感谢。

3 个答案:

答案 0 :(得分:6)

没有。 iOS基于Mac OS X,并使用过度使用的VM。它将根据需要释放内存。释放你自己的malloc,释放你控制的对象的所有权,实现didReceiveMemoryWarning为你的数据集做出明智的行为,你应该没事。如果在iOS杀死你之前没有足够的内存,那么背景应用程序将会被杀死。

答案 1 :(得分:1)

简短的回答是否定的。并同意上面的jer。

以前有一个应用程序用于释放iPhone中的内存,方法是在设备上分配除2MB以外的所有可用内存然后释放它,从而导致设备引发内存警告和释放内存。但是,你无法释放内存和重启iPhone一样有效。

答案 2 :(得分:0)

如果您使用init, new or copy分配了内存,则有3个选项。

A)您可以通过调用release函数显式并立即释放内存。

B)您可以通过调用autorelease方法创建对象,告诉iOS“随时”发布它。

C)您可以创建自己的自动释放池,以获得释放自动释放对象的控制权,如下所示:

NSAutoreleasePool *rPool = [[NSAutoreleasePool alloc] init];
        MyObject *obj = [[[MyObject alloc] init] autorelease];
[rPool drain];

希望能回答你关于记忆释放的问题。