#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
//OC中在C基础之上增加的数据类型,BOOL,id,SEL,block
//1、使用for循环遍历数组
NSArray * array = @[@"One",@"Two",@"Three"];
for (int i = 0; i < array.count; i++) {
NSString * str = array[i];//字符串接收遍历出来的数组元素
NSLog(@"array[%d] = %@",i,str);
}
//2、增强for循环,array.count值是多少就会循环遍历多少,每次取出数据中的一个元素,存储在str中
for (NSString * str2 in array) {//注意:在实际开发中,一个数组中存储的元素一定要是同一数据类型
NSLog(@"str2 = %@",str2);
}
//3、枚举器
NSEnumerator * enumerator = [array objectEnumerator];
NSString * str3;//必须放在外面定义,将元素都放在枚举器enumerator里面
while (str3 = [enumerator nextObject]) {//nextObject就是相当于将枚举器中的元素遍历出来,当遍历到最后一个元素结束后为nil,则自动退出while循环
NSLog(@"enum str = %@",str3);
}
//遍历数组的时候不要进行删除元素的操作,forin和枚举器中遍历删除元素会直接导致奔溃
//4、通过遍历的方式确定删除元素的方法
NSMutableArray * array2 = [[NSMutableArray alloc]init];
[array2 addObject:@"1"];
[array2 addObject:@"2"];
[array2 addObject:@"3"];
[array2 addObject:@"4"];
[array2 addObject:@"5"];
NSMutableArray * tmp = [[NSMutableArray alloc]init];
for (NSString * str in array2) {
if ([str isEqualToString:@"3"]) {
[tmp addObject:str];
}
}
NSLog(@"array2 %@",array2);
NSLog(@"tmp %@",tmp);
//遍历临时数组,从原数组中删除临时数组存储的对象
for (int i = 0; i < tmp.count; i++) {
NSString * str = [tmp objectAtIndex:i];
[array2 removeObject:str];
}
NSLog(@"array2删除后:%@",array2);
#pragma mark 遍历字典中的元素
NSDictionary * dict = @{@"1":@"One",
@"2":@"Two",
@"3":@"Three"};
NSDictionary * dictbl = @{@"one":@"1",
@"num":[NSNumber numberWithInt:10],
@"dict":dict};
NSArray * allkeys = [dictbl allKeys];
NSLog(@"allkeys %@",allkeys);
//1、for遍历
for (int i = 0; i < allkeys.count; i++) {
NSString * key = [allkeys objectAtIndex:i];
//如果字典中存储了多种不同的类型,那么最好用id类型去接收它
id obj = [dictbl objectForKey:key];
NSLog(@"obj %@",obj);
}
//2、枚举器
NSEnumerator * enumerator2 = [dictbl objectEnumerator];
id value;
while (value = [enumerator2 nextObject]) {
NSLog(@"value %@",value);
}
}
return 0;
}
iOS之OC随笔-遍历数组方法总结
最新推荐文章于 2025-03-07 14:02:02 发布