2012-10-27 19 views
0

在我的應用程序中,我需要繪製許多地標並不斷更新它們的位置(或者在它們變老時刪除它們)。現在我正在做一些級聯和順序循環,我擔心這不是最有效的方法。 這是我如何做這個工作到現在:管理MapKit中的許多地標

  1. 對於每個地標畫出我在MapKit註釋陣列的第一搜索(通過自定義MKPlacemark,我添加了創建日期和唯一標識符製造)要繪製的地標的唯一ID。如果我發現地標我只更新它的位置,否則我會在地圖上添加新的註釋。
  2. 對於MapKit註釋數組中的每個地標,我檢查從現在到創建日期之間的經過時間是否大於10秒,如果爲真,我從地圖中移除該註釋。

我每2秒重複這2個循環。

問題是,當我管理20個或更多地標時,循環花費太多時間,更新刪除過程無法按預期工作。

哪個是使用註釋數組最快的方法?刪除每個註釋並重新繪製它們會更快嗎?

回答

0

我解決了這個問題。我正在以正確的方式進行。剩下的唯一問題是在更新地圖時凍結屏幕。出於這個原因,我解決了在另一個線程上運行更新/刪除過程。 這意味着當您準備更新地標或將其刪除時,後臺線程需要調用主線程上的地圖更新(地圖必須在主線程上更新)。