Проблема с памятью в приложении iPad - PullRequest
0 голосов
/ 30 марта 2012

В нашем приложении мы отображаем список изображений в UIScrollView. И все изображение в HD. Таким образом, когда мы загружаем эту страницу 2-3 раза, приложение вылетает. Из-за проблемы с памятью.

Пожалуйста, дайте мне предложение, что я делаю?

Спасибо заранее.

Ответы [ 2 ]

2 голосов
/ 30 марта 2012

В зависимости от того, как выглядит эта страница, вы можете рассмотреть возможность их реализации как UITableView.Зачем?UITableView отлично подходит для отображения только того, что в данный момент находится на экране.

Настроить его немного сложнее, чем просто добавить несколько объектов UIImageView в scrollView, но все это может работать лучше и управлять загрузкой /выгрузка объектов.

Объекты UITableView вполне настраиваются до такой степени, что пользователь никогда не узнает, что они прокручивают таблицу.Я думаю о них как о системе очередей / выгрузки контента.Это займет немного больше, чтобы настроить.Например, вам необходимо:

  • создать свой собственный класс UITableViewCell и переопределить метод prepareForReuse, чтобы выгрузить ваши изображения (т.е. установить imageView.image = nil)
  • при желанииAsynchronousImageView, который также имеет возможность кэширования диска (если ваш контент не является локальным для устройства)
  • переопределяет методы DataSource / Delegate, чтобы высота каждой ячейки вычислялась правильно, учитывая размеры вашего UIImageView

В основном прочитайте руководство по программированию UITableView, особенно часть о UITableViewCells и предоставлении контента.

Я бы написал больше, но я не знаю точно, что вы пытаетесь сделать.

0 голосов
/ 30 марта 2012

Статический анализатор далеко не так хорош, как обнаружение утечек в приборах.И даже требуется несколько шагов, чтобы убедиться, что объекты с цикличным хранением найдены - у @bbum есть потрясающая запись о здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...