Есть ли способ отправить Память Предупреждение на устройство iPhone вручную?
У меня одна проблема в эти дни. Я использую библиотеку кеша изображений, она работает хорошо, но в итоге я столкнулся с проблемой памяти, и приложение просто само закрылось (я думаю, это потому, что у него просто не хватает памяти). Прочитав исходный код из библиотеки кеша изображений, я обнаружил, что при появлении события предупреждения о памяти освобождаются все кэшированные изображения (изображения огромные). Можно ли как-нибудь вручную и напрямую отправить на устройство событие предупреждения о памяти? Я использую инструмент xcode для оценки использования памяти.
2 ответа
Вы можете вручную симулировать в симуляторе:
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);
Предупреждение о памяти можно получить, вызвав закрытый метод UIApplication. Работает нормально на iOS 6.1 и ниже
[[UIApplication sharedApplication]performSelector:@selector(_performMemoryWarning)];
ПРИМЕЧАНИЕ. Удалите этот вызов селектора перед отправкой приложения в iTunes, иначе он будет отклонен.