Is there a way to send Memory Warning to iPhone device manually? [duplicate]

99封情书 提交于 2019-12-05 12:18:34

问题


I got one problem these days. I'm using an image-cache library, it works well but eventually i met memory issue and the app just quit itself (I guess it's because it just runs out of memory). After read the source code from the image-cache library, i found it's said that when there's memory warning event, it would release all images cached (the images are huge). Is there anyway for me to send Memory warning event to the device manually and directly ? I'm using xcode instrument tool to evaluate the memory usage.


回答1:


You can manually simulate in the simulator:

Hardware -> Simulate Memory Warning

You can also simulate it programmatically:

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

CFNotificationCenterPostNotification(CFNotificationCenterGetDarwinNotifyCenter(), (CFStringRef)@"UISimulatedMemoryWarningNotification", NULL, NULL, true);



回答2:


Memory warning can be produced by calling an private method of UIApplication. It works fine on iOS 6.1 and below

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

NOTE: Remove that selector call before submitting app to iTunes, otherwise it will be rejected.



来源:https://stackoverflow.com/questions/8410901/is-there-a-way-to-send-memory-warning-to-iphone-device-manually

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!