2011-05-28 117 views

回答

6

编号iOS基于Mac OS X,并使用overcommitting VM。它会根据需要释放内存。释放你自己的事物你malloc,释放你控制的对象的所有权,实施didReceiveMemoryWarning为你的数据集合理行事,你应该没问题。如果在iOS杀死你之前没有足够的内存,背景的应用程序将会被杀死。

0

如果您分配的记忆与init, new or copy,你有3个选项。

A)您可以通过调用release函数明确地立即释放内存。

B)您可以通过调用autorelease方法来创建您的对象,从而通过“随时需要”来释放它。

C)您可以创建自己的自动释放池获得释放,像这样的自动释放对象的控制:即回答您关于内存释放的问题

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

希望。

1

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

曾经有一个应用,该应用通过分配2MB之外的所有可用内存设备上,然后释放它,造成设备,以提高内存警告和释放内存用来在iPhone的可用内存。但是,您无法像重新启动iPhone一样有效释放内存。