我在某处看到以下三个代码在做同样的事情。
使用循环:
BOOL stop = 0;
for (int i = 0 ; i < [theArray count] ; i++) {
NSLog(@"The object at index %d is %@",i,[theArray objectAtIndex:i]);
if (stop)
break;
}
使用快速枚举:
int idx = 0;
BOOL stop = 1;
for (id obj in theArray) {
NSLog(@"fast emuration approch @ x %d is %@",idx,obj);
if (stop)
break;
idx++;
}
使用块:
[theArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
NSLog(@"the block approch at x %d is %@",idx,obj);
}];
但我不明白的是——
- 如何在块方法中从外部设置停止?
- 如何在块方法中设置 idx?
- BOOL 声明在块方法中是不寻常的。为什么?(因为我也无法更改块内的值,是因为这样的声明吗?)