2012-03-11 1 views
0

У меня есть этот вид карты с кучей накладок. Когда я нажимаю кнопку «домой» и снова открываю ее, все накладки исчезают на секунду и сразу появляются снова. Сначала я думал, что это мой код, который это делает, но я поставил точки останова почти везде, и ни один из моих кодов, похоже, не запускает «перезагрузку». Даже mapView:viewForOverlay: не вызывается перед повторным появлением оверлея.Накладки MKMapView сбрасываются на appDidBecomeActive

Я думал, что это неизбежное поведение MKMapView, но похоже, что Maps.app тоже не делает этого - если вы вычислите маршрут и закроете/откройте приложение, наложения остаются там все время ,

Я думаю, что, возможно, MKMapView очищает все свои аннотации/оверлеи по умолчанию при выходе, поэтому требуется меньше памяти при сохранении фонового рисунка. Есть ли способ избежать этого? Что-то вроде Maps.app делает?

EDIT: here's a small project Я собрал, чтобы продемонстрировать проблему. Просто запустите его в Simulator, нажмите кнопку «Домой» и снова откройте его. На мгновение вы увидите, что наложение пути карты исчезает.

+1

Вы используете дугу? arc выпустит объекты, как только они не будут использованы, поэтому при переходе на задний план они исчезнут, и как только они будут использованы, они снова появятся. это просто мысль, так как у меня есть виды, которые переустанавливаются на фоновой коммутатор. – Simon

+0

Я использую ARC, но мой контроллер держит ссылку «strong» на mapView, которая сама должна содержать ссылку «strong» на своих оверлеях no? – samvermette

+0

Думаю, да. Мне жаль, что я не мог помочь. – Simon

ответ

1

Это скорее последующий, чем фактический ответ, но в основном эта проблема была отмечена как ошибка Apple. Я представил это как TSI для Apple некоторое время назад и получил следующий ответ:

Спасибо за предоставление образца проекта. Я не вижу никаких проблем в вашем коде . На этом этапе я рекомендую эскалировать проблему в инженерную технику , введя ошибку об «мерцании» из MKPolylineView, которая была переделана по адресу https://developer.apple.com/bugreporter/ и отправила мне ошибку , поэтому я могу использовать ее для отслеживания.

Затем я представил радиолокационный # 11041378

Еще раз спасибо за ваше сообщение об ошибке. В этом случае у меня нет обходного пути . Инженер по-прежнему работает над проблемой , но у меня нет временной шкалы для исправления.

Я продолжу и оставлю этот инцидент открытым для вас до тех пор, пока ошибка 11041378 открыта. Если у вас есть какие-либо вопросы о его статусе в будущем или о состоянии обходного пути, не стесняйтесь отвечать на него, и я отвечу .

Если у вас есть какие-либо комментарии по поводу инжиниринга или вы хотите рассказать историю , почему это важно для вашей ситуации, я бы действительно рекомендовал вам поставить это прямо в сообщение об ошибке. Так как он назначен инженерии, любые комментарии пойдет прямо на них.

Я приложил следующий комментарий, описывающий, почему этот вопрос важен для меня:

Эта ошибка чувствует себя весьма важно для меня, как пользователь ожидает найти приложение в точном состоянии он оставил его когда он ушел из приложения. Мерцающие накладки (иногда исчезающие менее чем за секунду, иногда для 2-3s) могут заставить пользователя смущаться о том, что происходит, когда он действительно хочет, чтобы он сразу взаимодействовал с картой/оверлеями.

С тех пор я не слышал от Apple. Надеюсь, это будет исправлено в iOS 6?

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