2009-12-28 60 views
0

我有一個MKMapView,另一個類有一個線程添加批註到MKMapView。如何在MKMapView動畫或移動時暫停添加註釋。 [iPhone SDK 3]

但問題是,MKMapView.annotations是非原子的。所以,其他班級正在添加註釋......如果用戶不移動地圖的可見區域,則看起來確定。但是如果你繼續移動它,而另一個班級在那個時候向地圖添加註釋,則應用程序崩潰。 因爲在地圖動畫過程中陣列發生了變化。

我做了NSOperationQueue,並將每個添加的註釋工作添加到隊列中。

然後每當地圖的區域發生變化時,暫停NSOperationQueue ..然後在區域更改完成後重新啓動它。

我可以擺脫大多數崩潰..但它仍然偶爾發生。

有什麼想法?

回答

3

不要將註釋添加到後臺線程中的MKMapView。讓後臺操作返回一個NSArray回主線程,然後將NSArray同步添加到MKMapView。我一直這樣做,它的工作原理。

+0

非常感謝!我會這樣做。 – user239511 2009-12-30 08:09:40

0

始終處理主線程上的UI控件。