2012-02-11 58 views
0

有没有办法做到这一点?如果是这样,在模拟器和/或真实设备中运行应用程序时如何以及如何完成?运行仪器时模拟内存警告?

是否有另一种方法来测试乐器中对内存警告的响应?

回答

1

就设备而言,据我所知,产生内存警告的唯一方法实际上是创建内存不足的情况。你可以通过分配一大块内存并在几秒后释放它(不要忘记释放它)。 这可能看起来像一个黑客,但是产生低内存条件的最可靠的方法。

关于模拟器,正如您可能知道的那样,在模拟器中运行您的应用程序时,使用Instruments检查内存/性能问题并不完全可靠。无论如何,如果你想做到这一点,你可以尝试发送此通知:

- (void)simulateMemoryWarning 
{ 
#if TARGET_IPHONE_SIMULATOR 
    #ifdef DEBUG 
    CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true); 
    #endif 
#endif 
} 

Source

也要记住,模拟器已经拿到了“硬件/模拟内存警告”命令。

+0

我发现它最适合从一个计时器调用它,所以我可以手动设置所需的应用程序状态,然后发送内存警告。 – bneely 2012-02-11 17:56:54

1

通过进入菜单并选择:硬件>模拟内存警告,您可以在运行iPhone模拟器时模拟内存警告,即使在运行仪器期间也可以随时完成。