是否有一种程序化的方法来释放iPhone的内存,这与重启iPhone一样有效?
非常感谢。
答案 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];
希望能回答你关于记忆释放的问题。