При тестировании моего приложения все отлично работает на симуляторе iOS, но я испытываю утечку памяти при запуске того же приложения на физическом устройстве iOS. Я новичок в разработке приложений для iOS, и я знаю, что для этого есть много потенциальных причин. Я хочу знать, почему между тренажером и физическим устройством разные вещи, и есть ли способ решить проблему утечки памяти?Устранение утечки памяти происходит при работе на физическом устройстве iOS
ответ
Я предлагаю вам ознакомиться с учебником ниже. Это поможет вам понять, как отлаживать проблемы с памятью и другие проблемы.
подсказка: ваша проблема может быть решена с объектами зомби; но я советую вам сначала следовать инструкциям.
Да, между симулятором и устройством существует разница (иногда раздражающая большая). Это связано с тем, что базовое оборудование каждого из них совершенно иное. Очевидно, что симулятор имитирует аппаратное обеспечение iOS, но это не делает его надежным. С некоторыми API-интерфейсами и фреймворками вещи могут ТОЛЬКО работать на аппаратном обеспечении, а иногда на аппаратных средствах, которые не встречались на симуляторе, могут возникать ошибки. Подумайте об этом как о «приключении» развития iOS.
Что касается ресурсов, я бы посмотрел ссылки @ Arab_Geek, а также Tools for iOS Development от Apple - конкретно Instruments, как и у Leaks.
Я удивлен, что у вас есть утечка в вашем устройстве, а не в симуляторе. Как вы это сделали? Оба могут протекать, но проблема просто проявляется по-разному на разных платформах или просто быстрее встречает проблему на устройстве, чем на симуляторе.
Если у вас есть утечка, я хотел бы предложить две вещи:
Выполнить свой код через статический анализатор (выберите «Анализ» из меню «продукта» в Xcode). Более новые разработчики склонны игнорировать этот невероятно полезный инструмент. Я знаю, что я, наконец, освоил методы управления памятью Objective C только после прохождения результатов анализатора и реального понимания (и разрешения) каждой проблемы в действительно большом проекте, который у меня был. В любом случае, если вы получаете какие-либо предупреждения, вы действительно должны их исправить, так как они часто указывают на проблемы с управлением памятью.
Запустите программу через профайлер. См. Документацию Finding Leaks.
- 1. Устранение неполадок, возникающих на физическом устройстве iOS (9.3)
- 2. Устранение утечки памяти Xamarin.Forms
- 3. Java: Устранение утечки памяти
- 4. Тестирование на физическом устройстве
- 5. Устранение утечки памяти iPhone
- 6. Устранение утечки памяти в android
- 7. Устранение утечки памяти и памяти
- 8. Устранение утечки памяти iPhone
- 9. Устранение утечки памяти события
- 10. Устранение утечки видеоизображения OpenCV iOS
- 11. Устранение утечек памяти ios
- 12. Устранение утечки памяти node.js при перезапуске redis
- 13. Приложение iOS выглядит странно при работе на устройстве
- 14. Устранение утечки памяти в Xcode
- 15. Устранение потенциальной утечки памяти объекта
- 16. Устранение утечки памяти сервера Ruby
- 17. Устранение утечки памяти в Android
- 18. Устранение утечки памяти Синхронный метод
- 19. Устранение утечки памяти в калитки
- 20. Не удалось получить доступ к серверу на физическом устройстве iOS
- 21. Устранение утечки памяти памяти не работает?
- 22. Список <T> Устранение утечки памяти
- 23. ios fmdb утечки памяти
- 24. Xcode 8 beta 4: «Не удалось подключиться к pid: 1110» при работе на физическом устройстве
- 25. Устранение утечки памяти в службе .NET.
- 26. IOS OpenGLES Утечки памяти
- 27. Устранение неполадок утечки памяти для addSubview
- 28. iOS Утечки памяти
- 29. iOS: коды утечки памяти
- 30. Устранение утечки памяти с помощью TMatchCollection/TMatch
Ценный материал! – itenyh