這是foundation里面的一個方法:
-(void)enumerateObjectsUsingBlock:(void (^)(ObjectTypeobj,NSUIntegeridx,BOOL*stop))block NS_AVAILABLE(10_6,4_0);
這個方法也是一種循環的方法與for,while實現的功能一樣,但是既然蘋果出了這個方法,那一定有它的與眾不同的地方。
NSArray*array = @[@"zhang sna",@"li si",@"wang wu"];? ? [array enumerateObjectsUsingBlock:^(iditems, NSUInteger idx,BOOL* _Nonnull stop) {NSLog(@"%lu is %@",(unsignedlong)idx,items);? ? }];
這個一個簡單的循環輸出代碼。
輸出log:
2016-03-1715:06:10.308SDLayOut[24208:318707]0iszhangsna2016-03-1715:06:10.308SDLayOut[24208:318707]1islisi2016-03-1715:06:10.309SDLayOut[24208:318707]2iswangwu
ObjectType obj:這里聲明數組里面你放入的是什么類型的東西,不確定的話就直接id類型最靠譜。
NSUInteger idx:這是數組的下標
BOOL * _Nonnull stop:這是一個bool值,決定是否繼續循環。如果有NO,繼續循環下去。如果為YES ,停止循環。
測試一下里面bool值的作用:
NSArray*array = @[@"zhang sna",@"li si",@"wang wu"];? ? [array enumerateObjectsUsingBlock:^(iditems, NSUInteger idx,BOOL* _Nonnull stop) {NSLog(@"%lu is %@",(unsignedlong)idx,items);? ? ? ? *stop =YES;? ? }];
輸出log
2016-03-1715:13:03.755SDLayOut[24415:326788]0iszhangsna