程序化内存警告 ios

4
我想在低内存条件下测试我的应用程序。以前,我采用的方法是运行以下命令:
[NSTimer scheduledTimerWithTimeInterval:2.0 target:[UIApplication sharedApplication] selector:@selector(_performMemoryWarning) userInfo:nil repeats:YES];

但是它不再起作用了。所谓的“工作”,是指didReceiveMemoryWarning未被调用。我还尝试过以下方法:

 [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification object: [UIApplication sharedApplication]]; 
 [[NSNotificationCenter defaultCenter] postNotificationName:UIApplicationDidReceiveMemoryWarningNotification object: nil];
 [[UIApplication sharedApplication] _performMemoryWarning];

但是以上所有方法似乎都无法解决问题。

如果有任何想法,将不胜感激。


1
如果在使用模拟器硬件菜单时(如您在评论中建议的那样)也无法正常工作,则问题更可能出现在您的函数中。哪个类未收到该方法?它什么时候停止工作?您是否重写了该方法而没有调用超级方法? - jrturton
我已经重写了这个方法并调用了super。正如你所说,这个类(们)没有接收到这个调用。 - TompaLompa
似乎是一个backgroundView捕获了它。 - TompaLompa
2个回答

1

看看这篇文章:有没有办法手动向iPhone设备发送内存警告?

以编程方式发送:CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true);

在模拟器中:

硬件 -> 模拟内存警告


谢谢您的回答。我刚试了一下,它没有触发didReceiveMemoryWarning函数。 - TompaLompa
你也可以尝试给一些虚拟变量分配大量内存。 - Mikhail
我不想采用那种方法。 - TompaLompa

0
一个测试内存警告代码的简单方法是构建模拟器并点击

硬件 ==> 模拟内存警告


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接