NSArray说明
-oc中枚举就是遍历的意思,区别c语言中的枚举
-Foundation中的数组(NSArray,NSMutableArray)是一组有序的对象集合
-数组只能存储对象(类的实例)
NSArray使用
-通过下标获取到数组中的各个元素
-与字符串相同,数组分为可变和不可变数组
NSArray注意
-数组中不可以存放基本数据类型,只能存放类的实例(对象)
-如若需要将基本数据类型/结构体放入数组中,需要通过NSNumber NSValue进行“封装”
NSArray实例
创建不可变数组
1 // 创建不可变数组 2 //快速创建数组 3 NSArray *arr=@[@"mon",@"tue",@"wed"]; 4 //创建空数组 5 NSArray *array=[[NSArray alloc]init]; 6 NSArray *array1=[NSArray array]; 7 /*使用实例方法创建数组 注意数组结尾必须有nil(空)进行结束 不可删除*/ 8 NSArray *arr1=[[NSArray alloc]initWithObjects:@"123",@"231",@"133", nil]; 9 NSLog(@"%@",arr1);10 /*使用类方法创建数组*/11 NSArray *arr2=[NSArray arrayWithObjects:@"1",@"2",@"3", nil];12 NSLog(@"%@",arr2);
1 //复制 把一个数组内容复制到另一个数组内 2 NSArray *newArray=[NSArray arrayWithArray:arr1]; 3 NSLog(@"%@",newArray); 4 /*获取数组元素个数*/ 5 NSUInteger count=[arr1 count]; 6 NSLog(@"%ld",count); 7 /*根据索引值获取对象*/ 8 NSString *p=[arr1 objectAtIndex:0]; 9 NSLog(@"%@",p);10 /*向数组内添加一个元素*/11 NSArray *addArr=[newArray arrayByAddingObject:@"zhou"];12 NSLog(@"%@",addArr);13 //使用指定的字符串将数组中元素链接起来14 NSString *newStr=[newArray componentsJoinedByString:@","];15 NSLog(@"%@",newStr);16 //判定数组内是否包含某个对象17 BOOL result=[newArray containsObject:@"123"];18 NSLog(@"%d",result);19 //查询某个对象在数组中的位置20 NSUInteger index=[newArray indexOfObject:@"123"];21 NSLog(@"%d",(int)index+1);22 //获取数组最后一个元素(first第一个元素)23 NSString *last=[newArray lastObject];24 NSLog(@"%@",last);
遍历数组
1 //遍历数组(枚举)对数组内的元素依次不重复的进行遍历 2 //下标遍历(1) 3 for(int i=0;i<[newArray count];i++){ 4 NSString *element=[newArray objectAtIndex:i]; 5 NSLog(@"%@",element); 6 } 7 //(2) 8 for(int i=0;i<[newArray count];i++){ 9 NSLog(@"%@",newArray[i]);10 }11 // for in 快速遍历 遍历性高12 for(NSString *string in newArray){13 NSLog(@"%@",string);14 }15 //id 可以代表任意类型的数据,当不确定对象类型时使用16 for(id str in newArray){17 NSLog(@"%@",str);18 }
创建可变数组
1 // 可变数组继承自不可变数组 2 //1.设定元素个数进行创建 首次创建为7个元素的空间,可继续添加 3 NSMutableArray *muarr=[NSMutableArray arrayWithCapacity:7]; 4 //2.向数组内添加元素 5 NSArray *arr2=[NSArray arrayWithObjects:@"1",@"2",@"3", nil]; 6 //将不可变数组复制到可变数组内 7 NSMutableArray *muarr1=[NSMutableArray arrayWithArray:arr2]; 8 [muarr1 addObject:@"4"]; 9 for(id str in muarr1){10 NSLog(@"%@",str);11 }
1 //3.根据下标插入元素 2 [muarr1 insertObject:@"5" atIndex:4]; 3 for(id str1 in muarr1){ 4 NSLog(@"%@",str1); 5 } 6 //4.删除最后一个元素 7 [muarr1 removeLastObject]; 8 for(id str2 in muarr1){ 9 NSLog(@"%@",str2);10 }11 //5.根据指定下标删除元素12 [muarr1 removeObjectAtIndex:3];13 for(id str3 in muarr1){14 NSLog(@"%@",str3);15 }16 //6.根据对象删除元素17 [muarr1 removeObject:@"1"];18 for(id str4 in muarr1){19 NSLog(@"%@",str4);20 }21 //7.替换指定下标的元素22 [muarr1 replaceObjectAtIndex:0 withObject:@"3"];23 for(id str5 in muarr1){24 NSLog(@"%@",str5);25 }