14

这几天我遇到了一个问题。我正在使用图像缓存库,它运行良好,但最终我遇到了内存问题,应用程序自行退出(我想这是因为它只是内存不足)。从图像缓存库中读取源代码后,我发现据说当有内存警告事件时,它会释放所有缓存的图像(图像很大)。无论如何,我是否可以手动直接向设备发送内存警告事件?我正在使用 xcode 仪器工具来评估内存使用情况。

4

2 回答 2

15

您可以在模拟器中手动模拟:

Hardware -> Simulate Memory Warning

您还可以通过编程方式对其进行模拟:

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

CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true);
于 2011-12-07T05:46:26.217 回答
12

通过调用 UIApplication 的私有方法可以产生内存警告。它在 iOS 6.1 及更低版本上运行良好

  [[UIApplication sharedApplication]performSelector:@selector(_performMemoryWarning)];

注意:在将应用程序提交到 iTunes 之前删除该选择器调用,否则它将被拒绝。

于 2013-02-13T06:09:18.137 回答