ios 遍歷數(shù)組的八種方法

//第一種

[arr enumerateObjectsUsingBlock: ^(id obj, NSUInteger idx, BOOL *stop){

NSLog(@"%ld,%@",idx,[arr objectAtIndex:idx]);

}];

//第二種

dispatch_apply([arr count], dispatch_get_global_queue(0, 0), ^(size_t index){//并行

NSLog(@"%ld,%@",index,[arr objectAtIndex:index]);

});

//第三種

dispatch_apply([arr count], dispatch_get_main_queue(), ^(size_t index){//串行,容易引起主線程堵塞,可以另外開辟線程

NSLog(@"%ld,%@",index,[arr objectAtIndex:index]);

});

//第四種

for (NSString*str in arr) {

NSLog(@"%@",str);

}

//第五種,do-while

int i = 0;

do {

NSLog(@"%@",[arr objectAtIndex:i]);

i++;

} while (i<[arr count]);

//第六種,while-do

int j = 0;

while (j<[arr count]) {

NSLog(@"%@",[arr objectAtIndex:j]);

j++;

}

//第七種,普通for循環(huán)

for (int m = 0; m<[arr count]; m++) {

NSLog(@"%@",[arr objectAtIndex:m]);

}

//第八種,NSEnumerator? (謝謝大劉124585858的補充)

提供正反向遍歷

- (nullable ObjectType)nextObject;

@property (readonly,copy) NSArray *allObjects;

NSArray *iosArray = @[ @"I", @"O", @"S"];

NSEnumerator *enumerator = [iosArray objectEnumerator];//正向遍歷

NSEnumerator *enumerator = [iosArray reverseObjectEnumerator];//反向遍歷

id object;

while ((object = [enumerator nextObject]) != nil) {

//處理枚舉器中的數(shù)據(jù)

NSLog(@"%@", object);

}

個人比較喜歡第一種方法

注意:

① 其中第二種方法由于是并行,所以打印出來的東西是隨機的,并不是按照順序打印的

② 第三種容易引起主線程堵塞,所以最好自己另外創(chuàng)建一個線程

③ 本人學識淺,目前所知的就這幾種,歡迎補充

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容