#pragma標記數組數組的四種遍歷方法
void testArray(){
Blog * Blog 1 =[[Blog Blog]setBlogTitle:@“愛”andContent:@“我愛妳”];
Blog * Blog 2 =[[Blog Blog]setBlogTitle:@“友情”andContent:@“妳是我最好的朋友”];
NSArray * array =[NSArray array with objects:@ " hello " ,@ " world ",blog1,blog2,nil];
//第壹種遍歷:普通for循環
long int count =[數組計數];
for(int I = 0;我& lt數數;i++) {
NSLog(@"1遍歷數組:% zi-> %@ ",I,[Array objectAtIndex:I]);
}
//第二種遍歷:fast for循環,需要外部變量I。
int I = 0;
for(數組中的id對象){
NSLog(@"2遍歷數組:% zi-> %@ ",I,[Array objectAtIndex:I]);
i++;
}
//第三次遍歷:OC有自己的方法enumerateObjectsUsingBlock:
//默認為正序遍歷。
[數組enumerateobjectsusingblock:^(id obj,NSUInteger idx,BOOL *stop) {
NSLog(@"3遍歷數組:% zi->;%@ ",idx,obj);
}];
//NSEnumerationReverse參數是反向遍歷。
[array enumerateobjectswithoptions:nsenumerationreverse usingblock:^(id obj,NSUInteger idx,BOOL *stop) {
NSLog(@"4以逆序遍歷數組:% zi->;%@ ",idx,obj);
}];
//第四次遍歷:使用枚舉
NSE enumerator * en =[array object enumerator];
id obj
int j = 0;
while (obj = [en nextObject]) {
NSLog(@"5遍歷數組:% d-->;%@ ",j,obj);
j++;
}
}
int main(int argc,const char * argv[])
{
@autoreleasepool {
testArray();
}
返回0;
}