NSArray是静态的数组,就是它所指向的内容是不可改变的,它指向一段内存区域,一旦初始化,不能通过它对该内存区域的数据进行修改操作,但是它可以读数据。
NSMutableArray是动态的是NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容
NSArray和NSmutableArray的第一个数据的下标为0。
NSMutableArray是动态的是NSArray的子类,可以对所指向的内存区域内容进行更改,并可以增加数组内容
NSArray和NSmutableArray的第一个数据的下标为0。
一、初始化方法:
1.init返回一个空数组
2.initWithArray从已有数组初始化
3.initWithContentsOfFile//从plist文件加载
4.initWithContentsOfUrl//从网络地址上获取
5.initWithObject用一个对象初始化
6.initWithObjects从多对象初始化
1.init返回一个空数组
2.initWithArray从已有数组初始化
3.initWithContentsOfFile//从plist文件加载
4.initWithContentsOfUrl//从网络地址上获取
5.initWithObject用一个对象初始化
6.initWithObjects从多对象初始化
二、NSArray
NSArray *array1 = [NSArray arrayWithObject:@"zhangliu1"]; //不可变数组
NSArray *array2 = [NSArray arrayWithObjects:@"zhangliu1",@"zhangliu2", nil]; //创建并初始化数组,nil是数组结束标志
NSArray *array3 = @[@"man",@"women",@"unknown"]; //快速创建字符数组,NSMutableString不能用,返回值是NSArray
NSUInteger i = [array2 count]; //元素个数<strong>
</strong>
三、NSmutableArray
NSMutableArray *array = [NSMutableArray array]; //创建数组
[array addObject:@"jack"]; //添加元素
[array removeObject:@"jack"];//删除元素
[array removeObjectAtIndex:0];//根据位置删除元素
四、遍历NSArray的三种方法
<strong> </strong>for (int i = 0; i < array3.count ; i++) //遍历数组(1)
{
NSLog(@"%@",array3[i]);
}
for (id obj in array3) //遍历数组(2):快速遍历
//将每个元素依次赋给obj来进行遍历
{
NSLog(@"%@",obj);
}
//遍历数组(3) 利用block
[array3 enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) //每拿到array3的一个元素调用一次block,并将元素,索引位置当参数传递给block
{
NSLog(@"%ld-%@",idx,obj);
if(idx == 1)
{
*stop = YES; //每当索引到第一个的时候,BOOl类型赋值为YES,停止遍历
}
}];
NSLog(@"%@",array3);