2012-03-11 71 views
0

我有這個地圖視圖與一堆疊加。當我點擊主頁按鈕並重新打開它時,所有疊加層消失一秒鐘並立即重新出現。起初我以爲這是我的代碼,但我在任何地方都放置了斷點,我的代碼似乎沒有觸發「重置」。即使mapView:viewForOverlay:在覆蓋層重新出現之前也不會被調用。MKMapView覆蓋重置appDidBecomeActive

我想也許這是MKMapView的不可避免的行爲,但它似乎像Maps.app也不這樣做 - 如果你計算一條路線並退出/重新打開應用程序,覆蓋層會一直呆在那裏。

我在想,也許MKMapView在退出時會默認清除所有註解/覆蓋圖,因此在保持後臺運行時佔用的內存更少。有什麼辦法可以避免這種情況?有點像Maps.app嗎?

編輯:here's a small project我放在一起來展示問題。只需在Simulator中啓動它,單擊主頁按鈕,然後重新打開它。你會看到地圖路徑覆蓋層消失了片刻。

+1

你使用的是弧形嗎?弧會在不使用時立即釋放對象,所以在進入背景時,它們會消失,並且一旦它們被使用,它們就會重新出現。這只是一個想法,因爲我已經在背景切換上重置了視圖。 – Simon 2012-03-11 20:56:13

+0

我正在使用ARC,但我的控制器在mapView上保存了一個'strong'引用,它本身應該在其疊加層上保持'strong'引用? – samvermette 2012-03-11 20:59:36

+0

我想是的。對不起,我忍不住。 – Simon 2012-03-11 21:02:34

回答

1

這是一個比實際答案更多的後續,但基本上這個問題已被Apple標記爲一個錯誤。我剛剛將此作爲TSI提交給Apple,並且收到以下答案:

感謝您提供示例項目。我在 代碼中看不到任何問題。在這一點上,我建議將問題升級到 工程由於MKPolylineView被重繪 在https://developer.apple.com/bugreporter/並提供錯誤 號碼,所以我可以使用它來跟進的「閃爍」的錯誤。

我還是那句話11041378

感謝提交雷達#爲你的bug報告。碰巧,目前我沒有 解決方法。工程部門仍在處理 問題,但我沒有修復時間表。

只要bug 11041378處於打開狀態,我會繼續爲您提供此事件。如果您對將來的狀態或解決方法的狀態有任何疑問,請隨時回覆,我會爲您檢查它。

如果您有任何關於工程的意見,或者想告訴我們爲什麼它對您的情況很重要,我實際上鼓勵您直接在bug中輸入 。由於它已被分配到工程, 任何意見將直接發送給他們。

我附加了以下注釋描述爲什麼這個問題對我很重要:

此錯誤感覺對我來說比較重要,因爲用戶希望能夠找到在他離開它的確切狀態 應用當他退出應用程序。當他想要與地圖/疊加層立即交互時,閃爍的覆蓋層(有時消失不到秒,其他時間消失的時間爲012-2-3s)可能會讓用戶感到困惑。

自從蘋果以來沒有收到過迴應。希望這將在iOS 6中得到解決?