iOS開發之遍歷集合(NSArray,NSDictionary)

一般都會想到? for循環, 畢竟Objective-C是基于C語言的,自然可以使用for循環。

遍歷數組
遍歷字典


我們都知道字典和set是無序的,所以我們無法根據特定的整數下標來直接訪問其中的值,于是需要先獲取字典中的鍵或者set中的所有對象,這樣就可以在獲取到的有序數組上進行遍歷了。然而創建數組是要額外的開銷的,還會多創建出一個數組對象,他會保留collection中的所有對象,占用了內存。


所以,推薦用下面這張方式:

基于塊的遍歷方式

蘋果封裝了如此高效、優雅、易用的一套接口不用多么浪費。


遍歷數組
遍歷字典

就是這么簡單,block直接把字典的key和value都給我們了,再也不用書寫直白而繁瑣的代碼了。


反向遍歷

相對于正向遍歷多了一個枚舉類型的參數NSEnumerationReverse,打開這個選項就可以反向遍歷了。



并發遍歷

并發遍歷,參數是:NSEnumerationConcurrent,也就是可以同時遍歷collection中的幾個元素,具體數量根據系統資源而定。這樣會充分利用系統資源,高效快捷的完成collection的遍歷,系統底層會通過GCD來處理并發事宜,開發者不需要擔心內存和線程,其他方式若要實現高效的并發遍歷十分有難度。通過塊枚舉遍歷,改變collection并不會引起崩潰。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容