通常のループでは、for ループ内のカウンターとしてfor
使用できます。i
上記からカウント数を知るにはどうすればよいですか?
for(int i=0;i<[someArray count];i++)
{
bla = [arrayExample objectAtIndex:i];
}
for(id someObject in someArray)
{
bla = [arrayExample objectAtIndex:??];
}
通常のループでは、for ループ内のカウンターとしてfor
使用できます。i
上記からカウント数を知るにはどうすればよいですか?
for(int i=0;i<[someArray count];i++)
{
bla = [arrayExample objectAtIndex:i];
}
for(id someObject in someArray)
{
bla = [arrayExample objectAtIndex:??];
}
通常の for ループを使用することも、現在の高速列挙にカウンターを追加することもできます。
これには、現在使用しているインデックスも含めながら、高速な列挙という利点があります。
int index = 0;
for (id element in someArray) {
//do stuff
++index;
}
さらに良いのは、高速列挙ブロック方式を使用することです...
[someArray enumerateWithUsingBlock:^(id element, NSUInteger idx, BOOL stop) {
// you can do stuff in here.
// you also get the current index for free
// idx is the index of the current object in the array
}];
[animationKey addObject:@"cameraIris"];
[animationKey addObject:@"cameraIrisHollowOpen"];
[animationKey addObject:@"cameraIrisHollowClose"];
[animationKey addObject:@"cube"];
[animationKey addObject:@"alignedCube"];
[animationKey addObject:@"flip"];
[animationKey addObject:@"alignedFlip"];
[animationKey addObject:@"oglFlip"];
[animationKey addObject:@"rotate"];
[animationKey addObject:@"pageCurl"];
[animationKey addObject:@"pageUnCurl"];
//////////////////////////////////
[animationKey enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
NSString *animationType = obj;
NSLog(@"Animation type #%d is %@",idx,animationType);
}];
あなたの場合: -
このようにしてみてください...
[someArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
bla = [someArray objectAtIndex:idx];
}];
できません。または、外部カウンターを使用してサイクルごとに手動でインクリメントすることもできますが、「クラシック」を使用する方が簡単です。