一般都會想到? for循環, 畢竟Objective-C是基于C語言的,自然可以使用for循環。
遍歷數組
遍歷字典
我們都知道字典和set是無序的,所以我們無法根據特定的整數下標來直接訪問其中的值,于是需要先獲取字典中的鍵或者set中的所有對象,這樣就可以在獲取到的有序數組上進行遍歷了。然而創建數組是要額外的開銷的,還會多創建出一個數組對象,他會保留collection中的所有對象,占用了內存。
所以,推薦用下面這張方式:
基于塊的遍歷方式
蘋果封裝了如此高效、優雅、易用的一套接口不用多么浪費。
遍歷數組
遍歷字典
就是這么簡單,block直接把字典的key和value都給我們了,再也不用書寫直白而繁瑣的代碼了。
反向遍歷
相對于正向遍歷多了一個枚舉類型的參數NSEnumerationReverse,打開這個選項就可以反向遍歷了。
并發遍歷
并發遍歷,參數是:NSEnumerationConcurrent,也就是可以同時遍歷collection中的幾個元素,具體數量根據系統資源而定。這樣會充分利用系統資源,高效快捷的完成collection的遍歷,系統底層會通過GCD來處理并發事宜,開發者不需要擔心內存和線程,其他方式若要實現高效的并發遍歷十分有難度。通過塊枚舉遍歷,改變collection并不會引起崩潰。