的索引值我有像循环如下:获取每个for循环
for(NSMutableDictionary *dict in arr_thisWeek){
NSLog("%d",[arr_thisWeek objectATIndex:?????);
}
如何获得索引值?
谢谢
的索引值我有像循环如下:获取每个for循环
for(NSMutableDictionary *dict in arr_thisWeek){
NSLog("%d",[arr_thisWeek objectATIndex:?????);
}
如何获得索引值?
谢谢
NSInteger index = 0;
for(NSMutableDictionary *dict in arr_thisWeek){
NSLog("%d",[arr_thisWeek objectATIndex:index);
index++;
}
但是你已经有一个索引处的项目,所以你不应该需要它的阵列迭代。
NSMutableArray *arr_thisWeek=[[NSMutableArray alloc]initWithObjects:@"value1",@"value2",@"value3",@"value4", nil];
[arr_thisWeek enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"index: %d , Value: %@",idx,obj);
}];
如果你想索引:
for(NSMutableDictionary *dict in arr_thisWeek){
NSLog("%d",[arr_thisWeek indexOfObject:dict);
}
我个人比较喜欢:
[arr_thisWeek enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSLog(@"Index %i holds object: %@", idx, obj);
}];
的几个注意事项在此块枚举语法:
你不”你需要记住如何写它。只需输入[arr_thisWeek enum...
,你就可以在自动完成框中找到它(假设Xcode IDE或类似的)。
如果你知道的,例如,该对象是NSMutableDictionaries
,你想访问他们的方法,改变id obj
到NSMutableDictionary* obj
。
我建议将变量名obj
更改为更清晰。
最重要的是:迭代代码不循环 - 这是一个块被执行多次。这意味着:
return;
。这会退出块,而进一步调用块(进一步迭代)将继续正常。*stop = YES;
。这不会导致进一步的块被执行。请注意,这不会退出当前的块。因此,要获得正常的“返回行为”,请执行:*stop = YES; return;
。
不正确..&得到警告 – user2526811