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