Я делаю приложение, которое имеет несколько контроллеров представления с элементами управления UIDatePicker.
Получив много предупреждений о памяти, я много отлаживал причину. Используя инструменты, я смог увидеть, что всякий раз, когда появляется контроллер представления, содержащий UIDatePicker, использование памяти увеличивалось на 2-3 МБ. В конечном итоге это приводит к предупреждению памяти. Несмотря на то, что я могу многое сделать здесь, и после переписывания этих функций наблюдается значительное снижение числа сбоев, я все еще не удовлетворен этим поведением и хочу его исправить.
UIDatePicker является частью файла XIB. Я пытался извлечь их из XIB и программно добавить их. Это не решает проблему. Я также попытался использовать (поточно-ориентированный) синглтон. Это ограничивает использование памяти только одним экземпляром (таким образом, использование памяти не увеличивается), но я стараюсь по возможности избегать синглетонов. Должен ли я просто смириться с этим и использовать синглтон?
Я наблюдаю такое поведение на iOS 5 и 4.3 на всех устройствах, на которых он работает. Я использую ARC, как следует из названия.
Прибор не обнаруживает утечек памяти.
Вот скриншот из инструментов. Каждый шаг в использовании происходит, когда появляется VC, содержащий средство выбора даты. Базовая линия в начале графика составляет 2,3 Мб использования памяти.
http://i.stack.imgur.com/1S7ns.png
ура!