Согласно документам Apple, если приложение игнорирует предупреждение о памяти, система может принудительно освободить грязную память, если она понадобится. В то же время в некоторых случаях ручное освобождение данных в ответ на предупреждение о памяти и последующее восстановление не приемлемо по причине производительности. Так можно ли узнать, действительно ли некоторые члены экземпляра класса были принудительно очищены? Назначены ли они nil
? А как насчет указателей на объекты C++, являющихся членами объектов Obj-C?Игнорирование didReceiveMemoryWarning в IOS
ответ
Это не так, как это работает. ОС освободит память, оставив приложение. ОС не может входить и случайно удалять объекты, потому что у нее нет способа понять, какие объекты будут безопасными для очистки, а какие - нет.
IIRC Единственное, что он иногда делает, это выгрузить несколько представлений диспетчера представлений (но не фактический объект контроллера), которые сложены, например. в навигационном контроллере и в настоящее время не отображается. Он может это сделать, потому что он знает, как загрузить эти представления и какие ивары на них ссылаются (потому что вы сказали это через IBOutlet и т. Д.), Поэтому он может и будет на самом деле NIL.
Обновление: В наши дни также есть классы кеша, которые будут вытеснять их объекты при получении предупреждения о памяти, но вам нужно будет явно использовать эти классы для ваших объектов, которые будут выпущены.
- 1. didReceiveMemoryWarning в IOS 6
- 2. iOS: полезность didReceiveMemoryWarning:
- 3. NSNotification & didReceiveMemoryWarning в iOS 6
- 4. iOS UITableView пробелы после didReceiveMemoryWarning
- 5. DidReceiveMemoryWarning в IOS с использованием форм Xamarin
- 6. Как это работает didReceiveMemoryWarning для iOS 6
- 7. Есть ли Android-эквивалент iOS didReceiveMemoryWarning?
- 8. Что делает ios, когда он называет didreceivememorywarning?
- 9. didReceiveMemoryWarning, viewDidUnload
- 10. didReceiveMemoryWarning and viewDidUnload
- 11. Правильно ручка didReceiveMemoryWarning
- 12. Игнорирование SIGPIPE не работает iOS
- 13. Что я должен делать в didreceivememorywarning
- 14. UIWebview становится зомби в didReceiveMemoryWarning
- 15. Управление памятью iPhone didReceiveMemoryWarning
- 16. Игнорирование динамического типа в iOS: Доступность
- 17. Как реализовать didReceiveMemoryWarning?
- 18. didReceiveMemoryWarning, но не viewDidUnload?
- 19. didReceiveMemoryWarning - ручная выгрузка просмотров?
- 20. Использование необъявленной идентификатора 'didReceiveMemoryWarning'
- 21. viewDidUnload и didReceiveMemoryWarning Совместимость
- 22. Ответ на didReceiveMemoryWarning oddity
- 23. Предупреждение после didreceivememorywarning
- 24. Dissmissed UIViewController didreceivememorywarning - swift
- 25. Сообщение в didReceiveMemoryWarning в приложении для iPhone
- 26. iOS UIWebview игнорирование CSS line-height
- 27. Какая память выпущена didReceiveMemoryWarning/viewDidUnload?
- 28. didReceiveMemoryWarning и viewDidUnload memory question
- 29. Swift ленивых переменный и didReceiveMemoryWarning
- 30. В чем разница между applicationDidReceiveMemoryWarning, didReceiveMemoryWarning?
Где вы узнали, что ОС освобождает грязную память? – uliwitness
На самом деле я слышал об этом в WWDC 2012 Сессия 242 Производительность приложения IOS - видео с памятью – tonso