0C数组常用方法
数组的基本概念:
Foundation中的数组(NSArray和NSMutableArray)是一组有序的对象集合,通过索引下标获取到获取到数组中的各个元素。与字符串相同,数组也有可变和不可变之分。此外,数组里面不能存放基本数据类型,只能存放类的实例(对象)。如若需要将基本数据类型、结构体,放进数组中,需要通过NSNumber、NSValue进行数据的“封装”。同时不能再NSArray中存储nil(对象的零值或NULL值)。
1数组的创建:
1.1直接创建数组对象
【【NSArray alloc】 initWithObject:s1,s2,s3,nil】;传入的必须是对象,nil表示传入结束。传完之后赋给一个变量。打印的时候也用%@格式。
1.2使用类方法创建:
【NSArray arrayWithObject:s1,s2,s3,nil】;
1.3只存一个对象到数组里面
【NSArray arrayWithObject:s1】;
1.4将array1里面的元素拿出来,存入到array2里面去(注意array1里面的元素不会变)
【array2 arrayWithArray:array1】;
1.5Xcode4.4以后对编译器语法做了一个优化
创建数组可以更简单:NSArray *array = @【str1,str2,str3】;(str1,str2,str3都是对象)
2通过下标取元素:
2.1【array objectAtIndex:数字】;返回的类型赋值给该类型变量
2.2Xcode4.4以后对编译器语法做了一个优化
取下标元素可以直接这样:NSString * str = array【0】;(我假设返回的对象时字符串类型了)
3获取数组元素个数:
【array count】;
array.count;
返回的是一个NSUInteger类型值,NSU是没有符号的对象,返回的数组元素个数不可能带符号,例如负号。
4判断数组中是否包含一个对象
【array containsObject:(id)】;返回的是布尔类型
5查找数组中的某以元素所在数组中的下标位置
【array indexOfObject:(id)】;
如果找到就返回一个一个NSUInteger的值。
如果没有找到返回的就是NSNotFound。
找到和没找到都是NSUInteger对象,例:NSUInteger inte = 【array indexOfObject:@“张三”】;
6连接数组中的字符串(注意:数组中的元素必须都是字符串在可以连接)
【array componentsJoinedByString:@“,”】后面的@“,”表示用“,”将这些字符串连接起来。返回值同样是字符串。
7访问数组中的最后一个元素
【array lastObject】;
这个通用是get方法模式,可以用点语法调用
NSArray *array1 = array.lastObject;
8在原来的数组后面追加一个元素
【array arrayByAddingObject:(id)】;NSArray不可变,所以返回一个新的数组。
/*
数组需要注意的地方:
1.数组中不能存基本数据类型,只能存类的实例(对象)
2.数组越界(下标别整过头了),如果不清楚数组里面有多少个元素的话可以先得到数组的个数(用【array count】),然后做判断让所取下标小于数组元素个数就可以了。
*/
数组的遍历:
数组里面最好要存同一种类型的对象,遍历的时候也好得到每一个对象。
首先要知道数组的长度,用循环遍历
普通遍历
for(int i = 0;i<[array count];i++){
NSString *str = [array objectAtIndex:i];
NSLog(@"%@",str);
}
本遍历方法可以在循环里面使用下标。
快速遍历
for(NSString *str in array){
NSLog(@"%@",str);
}
本遍历方法不可以在循环里面使用下标。