2012-06-10 2 views
0

При тестировании моего приложения все отлично работает на симуляторе iOS, но я испытываю утечку памяти при запуске того же приложения на физическом устройстве iOS. Я новичок в разработке приложений для iOS, и я знаю, что для этого есть много потенциальных причин. Я хочу знать, почему между тренажером и физическим устройством разные вещи, и есть ли способ решить проблему утечки памяти?Устранение утечки памяти происходит при работе на физическом устройстве iOS

ответ

3

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


  1. My App Crashed – Now What? 1/2
  2. My App Crashed – Now What? 2/2

подсказка: ваша проблема может быть решена с объектами зомби; но я советую вам сначала следовать инструкциям.

+1

Ценный материал! – itenyh

0

Да, между симулятором и устройством существует разница (иногда раздражающая большая). Это связано с тем, что базовое оборудование каждого из них совершенно иное. Очевидно, что симулятор имитирует аппаратное обеспечение iOS, но это не делает его надежным. С некоторыми API-интерфейсами и фреймворками вещи могут ТОЛЬКО работать на аппаратном обеспечении, а иногда на аппаратных средствах, которые не встречались на симуляторе, могут возникать ошибки. Подумайте об этом как о «приключении» развития iOS.

Что касается ресурсов, я бы посмотрел ссылки @ Arab_Geek, а также Tools for iOS Development от Apple - конкретно Instruments, как и у Leaks.

1

Я удивлен, что у вас есть утечка в вашем устройстве, а не в симуляторе. Как вы это сделали? Оба могут протекать, но проблема просто проявляется по-разному на разных платформах или просто быстрее встречает проблему на устройстве, чем на симуляторе.

Если у вас есть утечка, я хотел бы предложить две вещи:

  1. Выполнить свой код через статический анализатор (выберите «Анализ» из меню «продукта» в Xcode). Более новые разработчики склонны игнорировать этот невероятно полезный инструмент. Я знаю, что я, наконец, освоил методы управления памятью Objective C только после прохождения результатов анализатора и реального понимания (и разрешения) каждой проблемы в действительно большом проекте, который у меня был. В любом случае, если вы получаете какие-либо предупреждения, вы действительно должны их исправить, так как они часто указывают на проблемы с управлением памятью.

  2. Запустите программу через профайлер. См. Документацию Finding Leaks.

Смежные вопросы