Доверяйте только устройству. Это то, что ваш пользователь будет использовать для запуска вашего приложения.
Не доверяйте симулятору.
В качестве демонстрации этого я просто намеренно добавил утечкук проекту.Утечка не была обнаружена в симуляторе, но обнаружилась, как и ожидалось на устройстве.
Симулятор - это просто симулятор.Может быть полезно работать быстрее, но никогда не заменяет устройство.
После того, как инструменты показали вам протекший объект, вы можете дважды щелкнуть по нему.Он покажет часть вашего кода, ответственную за утечку.Это работает для симулятора и устройства.
Когда вы компилируете для устройства, убедитесь, что вы находитесь в режиме отладки (и что настройки этого режима сохранили все ваши символы).
Еще несколько советов, которые могут вам пригодиться:
Для более плавного сеанса отключите «Автоматическую проверку на наличие утечек» и вручную нажмите кнопку «Проверить на наличие утечек сейчас», если необходимо.
Команда «Построить и проанализировать» сделает фантастическую работу, чтобы помочь вам найти утечки.Это не (полностью) волшебно, поэтому он не найдет все утечки.Например, утечка iVars не будет идентифицирована.Но с точки зрения метода это просто потрясающе.
Я настоятельно рекомендую активировать флаг "Run Static Analyzer" в настройках вашей сборки (или только для режима Release, если у вас медленная компиляция машины).
Если вам нужна дополнительная информация о том, как использовать инструменты для поиска утечек, прочитайте этот документ Apple: Руководство пользователя инструментов: встроенные инструменты и Руководство пользователя инструментов: просмотр и анализ данных трассировки> Поиск утечек памяти
Вы также можете посмотреть видео сессий, связанных с WWDC.
Если вы все еще не понимаете, откуда произошла утечка, пришло время (пере) прочитать Руководство по программированию управления памятью .
Спасибо за желание отправить приложение без утечек.С iOS 4 это теперь важнее, чем когда-либо.