for in、经典for循环和EnumerateObjectsUsingBlock

for in实际上是快速枚举,跟for循环意义上还是有区别的。NSArray的枚举操作中有一条需要注意:对于可变数组进行枚举操作时,不能通过添加或删除对象等这类操作来改变数组容器,否则就会报错.而本身这种操作也是有问题的,数组容器已经改变,可能遍历到没有分配的位置,用for循环机器不能自己察觉,但是枚举器可以察觉。

enumerateKeysAndObjectsUsingBlock用法

NSDictionary * dic = [NSDictionary dictionaryWithObjectsAndKeys:@"obj1",@"key1",@"obj2",@"key2", nil]; 
[dic enumerateKeysAndObjectsUsingBlock:^(id key, id value, BOOL *stop) { 
NSLog(@"value for key %@ is %@ ", key, value); 
if ([@"key2" isEqualToString:key]) 
{ *stop = YES; } 
}];

你可能感兴趣的:(for in、经典for循环和EnumerateObjectsUsingBlock)