OC语言day08-02NSArray遍历
2016-07-31 本文已影响38人
liyuhong165
pragma mark NSArray遍历
pragma mark 概念
/**
常规遍历 (for循环)
OC语言遍历 (forin)
OC迭代器block (enumerateObjectsUsingBlock)
*/
pragma mark 代码
#import <Foundation/Foundation.h>
#pragma mark 类
#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma mark NSArray遍历
NSArray *arr = @[@"lyh",@"lys",@"lyt"];
#warning 1.常规遍历
for (int i = 0; i < arr.count; ++i)
{
NSLog(@"arr[%i] = %@",i,arr[i]);
}
#warning 2.如果是 OC数组 可以使用 OC的增强for循环来遍历 (forin)
// 本质 : 逐个取出 arr中的元素, 将取出的元素 赋值给 obj
// 注意 : obj 的类型 可以根据数组中 元素的类型来写
// for (NSObject *obj in arr)
for (NSString *obj in arr)
{
NSLog(@"obj = %@",obj);
}
#warning 3. 使用 OC 数组的迭代器 来遍历 block (enumerateObjectsUsingBlock)
// 每取出 一个元素 就会调用 一次 block
// 每次 调用 block 都会将 当前 取出的元素 和 元素对应的索引 传递给我们
// obj 就是当前取出的元素, idx就是 当前元素对应的索引 \
stop 用于控制什么时候停止遍历
[arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
if (idx == 1)
{
*stop = YES;
}
NSLog(@"obj = %@,idx = %lu",obj,idx);
}];
return 0;
}