技巧說明:乙個以上的執行緒同時操作nsarray, 任何乙個有寫操作,都容易引起「collection was mutated while being enumerated」 」
所以在其中只有讀操作的執行緒中,將此array拷貝乙份出來進行讀取,可以解決此問題。
使用場景:移動地圖時,地圖上會及時出現當前視窗經緯度範圍的物體(比如一些自己geo資料庫中的優惠餐館等)
程式結構:1. 在移動地圖事件上觸發網路請求。
2. 請求返回後,將返回的資料用mkannotion的方式顯示在地圖上
使用者體驗要求:在請求返回前,使用者可以繼續移動地圖。這意味這1和2是非同步的,需要在不同的執行緒中進行
主要**:
執行緒1中,發出網路請求
執行緒2中渲染mapview
注意,如果沒有下面這句話,會發生異常:
"collection was mutated while being enumerated」
nsarray *sitesresult = [nsarray arraywitharray:self.searchresult.results];
iPhone 多執行緒程式設計
多執行緒之nsinvocationoperation 本次介紹nsoperation的子集,簡易方法的nsinvocationoperation implementation mycustomclass void launchtaskwithdata id data 這個是真正執行在另外乙個執行緒的...
iphone開發 多執行緒
from 舉例說明怎麼簡單的建立乙個子執行緒。用到的類是nsthread類,這裡使用detachnewtheadselector totagaet withobject建立乙個執行緒。函式setupthread nsarray userinfor。通過userinfor將需要的資料傳到執行緒中。函式...
iphone開發 多執行緒
舉例說明怎麼簡單的建立乙個子執行緒。用到的類是nsthread類,這裡使用detachnewtheadselector totagaet withobject建立乙個執行緒。函式setupthread nsarray userinfor。通過userinfor將需要的資料傳到執行緒中。函式定義 vo...