您好,登錄后才能下訂單哦!
最近在做一個應用時,測試時發現一個我寫的控制器控制節點出現了問題,開始報NSGenericException錯誤,日志報的原因時迭代遍歷元素時,元素被改變了,一開始我認為是線程同步出了問題,所以把迭代過程用線程鎖保護了起來,但是發現問題依舊,然后開始不停查資料,最終發現問題居然在控制器為節點發消息的循環上。
原因就在這 "foreach",它的內部遍歷使用了類似 Iterator進行迭代遍歷,一旦元素變動,之前的元素全部被失效,所以在foreach的循環當中,最好不要去進行元素的修改動作,若需要修改,循環改為for遍歷,由于內部機制不同,不會產生修改后結果失效的問題。
總結一下:遍歷元素時,若需要修改原元素,不要使用foreach,而使用for循環。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。