#iphone #google-maps #crash
#iPhone #google-карты #сбой
Вопрос:
Я столкнулся со сценарием, в котором, если после немедленного перемещения карты, если я нажму на значок «Назад», пока карта не загружена полностью, приложение выйдет из строя.
Что я могу понять, так это то, что загрузка все еще продолжается, и я нажимаю назад, приложение освобождает контроллер, но карта Google загружается асинхронно в NSRunLoop (не уверен). Так что, возможно, проблема в том, что я не уверен.
Итак, кто-нибудь знает, в чем может быть проблема, и есть ли какой-либо способ решить эту проблему? Пожалуйста, прокомментируйте, если требуется дополнительное описание.
Комментарии:
1. Опубликуйте некоторый код, следуйте стеку трассировки.
2. Установка отладчика не приводит к сбою приложения, как если бы я отлаживал, карта загружалась полностью, тогда проблем не возникало. Есть ли какой-либо способ определить, полностью ли загружена карта или нет?
Ответ №1:
Похоже, что при закрытии представления объект, который является делегатом для завершенной загрузки карты, был освобожден, что привело к сбою с плохим доступом.
Хороший способ разобраться в этих типах сбоев — использовать инструменты (часть пакета Xcode для инструментов) и отправиться на охоту на зомби.
Комментарии:
1. да, я тоже думаю, что это проблема .. но есть ли что-нибудь, что сообщает нам, что карта еще не загружена, чтобы я мог отключить панель навигации и запретить пользователю возвращаться, пока карта не будет полностью загружена
Ответ №2:
Для всех, кто все еще ищет ответ
Что именно происходило, так это то, что события просмотра карты запускались, даже если контроллер был выпущен, что приводило к сбою в приложении.
Таким образом, решение заключается в том, что перед установкой значения objMKMapView равным нулю вам нужно установить значение objMKMapView.delegate равным нулю.