iOS — Управление памятью

Управление памятью в iOS изначально было не-ARC (автоматический подсчет ссылок), где мы должны сохранять и освобождать объекты. Теперь он поддерживает ARC, и нам не нужно сохранять и освобождать объекты. Xcode выполняет задание автоматически во время компиляции.

Проблемы управления памятью

Согласно документации Apple, двумя основными проблемами в управлении памятью являются:

  • Освобождение или перезапись данных, которые все еще используются. Это вызывает повреждение памяти и обычно приводит к сбою вашего приложения или, что еще хуже, к повреждению пользовательских данных.

  • Отсутствие освобождения данных, которые больше не используются, вызывает утечку памяти. Когда выделенная память не освобождается, даже если она больше никогда не будет использоваться, это называется утечкой памяти. Утечки заставляют ваше приложение использовать постоянно увеличивающийся объем памяти, что, в свою очередь, может привести к снижению производительности системы или (в iOS) завершению вашего приложения.

Правила управления памятью

  • Нам принадлежат объекты, которые мы создаем, и мы должны впоследствии выпускать их, когда они больше не нужны.

  • Используйте «Сохранить», чтобы получить право собственности на объект, который вы не создавали. Вы также должны освободить эти объекты, когда они не нужны.

  • Не отпускайте предметы, которыми вы не владеете.

Обработка памяти в ARC

Вам не нужно использовать выпуск и сохранение в ARC. Таким образом, все объекты контроллера представления будут освобождены при удалении контроллера представления. Точно так же любые подобъекты объекта будут освобождены, когда они будут освобождены. Обратите внимание: если другие классы имеют сильную ссылку на объект класса, то весь класс не будет выпущен. Поэтому для делегатов рекомендуется использовать слабые свойства.

Инструменты управления памятью

Мы можем проанализировать использование памяти с помощью инструментов Xcode. Он включает в себя такие инструменты, как Activity Monitor, Allocations, Leaks, Zombies и так далее.

Шаги по анализу распределения памяти

Шаг 1 — Откройте существующее приложение.

Шаг 2 — Выберите Продукт, а затем Профиль, как показано ниже.

Учебник iOS

Шаг 3 — Выберите Распределения на следующем экране, показанном ниже, и выберите Профиль.

Учебник iOS

Шаг 4 — Мы увидим распределение памяти для разных объектов, как показано ниже.

Шаг 5 — Вы можете переключаться между контроллерами просмотра и проверять, правильно ли освобождена память.

Учебник iOS

Шаг 6. Точно так же вместо распределения мы можем использовать Activity Monitor, чтобы увидеть общую память, выделенную для приложения.

Учебник iOS

Шаг 7 — Эти инструменты помогают нам получить доступ к потребляемой памяти и определить места, где произошли возможные утечки.

Выберите поля, которые будут показаны. Прочие будут скрыты. Перктаскивайте мышкой для изменения порядка полей.
  • Изображение
  • SKU
  • Рейтинг
  • Цена
  • Запасы
  • Доступность
  • В корзину
  • Описание
  • Содержимое
  • Вес
  • Размеры
  • Дополнительная информация
  • Атрибуты
  • Custom attributes
  • Настраиваемые поля
Сравнить
Список желаний 0
Открыть страницу желаний Продолжить покупки