Foundation_02_NSArray
一、NSArray基本介绍
1.什么是NSArray
NSArray是OC中的数据类,开发中建议尽量使用NSArray代替C语言中的数组
C语音中数组的弊端
int array[4] = {1,5,6,8};
1.只能存放一种类型的数据(类型必须一致)
2.不能很方便地动态添加数组元素(长度固定)
3.不能很方便地动态删除数组元素(长度固定)
1.NSArray注意点
- 只能存储OC对象,并且是有顺序的,不能存储C语言的基础数据类型(int,float,enum,struct和NSArray中的随机指针)
- 不能在NSArray中存储nil值(对象的零值或NULL值)
- 它是不可变的,一旦初始化完毕后,它里面的内容就永远是固定的,不能删除里面的元素,也不能再往里面添加元素
2.NSArray对象的创建
- 通过类方法arrayWithObjects:创建一个新的NSArray。发送以逗号分割的对象列表,在列表结尾添加nil(这就是不能在数组中存储nil的一个原因)
NSArray *array = [NSArray arrayWithObjects:@”xm1”,@”xm2”,nil]; - 数组字面量方式创建(这种方式不用再后面加上 nil)
NSArray *array = @[@”xm1”,@”xm2”]; - 。。。。。。。
3.NSArray的属性和方法
- count 数组中元素个数
- objectAtIndex: 获取索引对应的对象(也可以用 NSArray对象名[indes])
4.索引错误
void test1(){
NSArray *array = [NSArray arrayWithObjects:@"xm1",@"xm2", nil];
NSLog(@"array:%@",array);
NSArray *array2 = @[@"xm1",@"xm2",@"xm3"];
NSLog(@"array:%@",array2);
NSLog(@"array:%@",[array2 objectAtIndex:2015]);
}
*** Terminating app due to uncaught exception 'NSRangeException',reason: '*** -[__NSArrayI objectAtIndex:]: index 2015 beyond bounds [0 .. 2]'
二、NSMutableArray
和java中的List类似,注意的是NSMutableArray没有用来创建对象的字面量语法