不可变数组 NSArray
初始化NSArray
NSArray *array1 = [[NSArray alloc]init];
NSArray *array2 = [NSArray array];//类方法
//创建一个里面有一个元素的不可变数组
NSArray *array3 = [NSArray arrayWithObject:@"Leee"];
NSArray *array4 = [NSArray arrayWithObjects:@"Leee",@"axiba",@"Leo", nil];
//nil 只能出线在数组的最后,不能在数组中间存放nil,因为nil是一个NSArray的结束标志.
//新语法
NSArray *array5 = @[@"Leeee"];
NSArray *array6 = @[@5,@"Leee",@"sb",@"???"];
//@5 相当于[NSNumber numberWithInt:5]
//根据一个数组产生新的数组
NSArray *array7 = [NSArray arrayWithArray:array6];
//从本地读取数组文件
NSArray *array8 = [NSArray arrayWithContentsOfFile:@""];
NSArray *array9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"http://www.baidu.com"]];
//数组中元素个数
NSUInteger count = [array6 count];
//数组的操作
//访问数组中的元素
//数组里面每一个东西都必须是对象
//访问array6中的第一个元素
NSString *str1 = [array6 objectAtIndex:0];//返回一个字符串
for (int i =0 ; i < 3;i++ ) {
NSLog(@"%@",[array6 objectAtIndex:i]);
};
//新语法访问数组中元素
NSString *str2 = array6[0];
NSArray *array10 = @[@3,@4,@5];
//@3 [NSNumber numberWithInteger:3];
//@YES [NSNumber numberWithBool:YES];
//通过数组中国年的元素查找下标
NSUInteger index = [array6 indexOfObject:@"Leee"];
NSLog(@"index = %lu",index);
//判断数组中是否存在某元素
if ([array6 containsObject:@"RICK"]){
NSLog(@"不包含此元素");
}
//向不可变数组增加一个元素
NSArray *newArray1 = [array6 arrayByAddingObject:@"urmamaboom"];
//在后面在给它加东西
NSArray *newArray2 = [array6 arrayByAddingObjectsFromArray:array6];
//拼接
NSString *string = [newArray2 componentsJoinedByString:@"^.^"];
NSLog(@"%@",string);
NSArray *array11 = @[@"123",@"456",@"789",@"000"];
NSString *string1 = [array11 componentsJoinedByString:@"-"];
NSArray *array12 = [string1 componentsSeparatedByString:@"-"];
NSString *string2 = [array12 componentsJoinedByString:@""];
/*
使用NSArray 注意事项
1.数组越界
2.不能在数组中间存放nil,nil 是数组结束标志
3.数组会对加入其中的对象自动把引用加一。
*/
可变数组 NSMutableArray
可变数组 NSMutableArray,它是NSArray 的子类
//初始化方法
//初始化一个空的数组
NSMutableArray *mArray1 = [NSMutableArray array];
//初始化一个里面有一个元素的数组
NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];
//创建一个里面有多个元素的数组
NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];
//根据一个数组去创建一个新的数组
NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray3];
//可变数组独有的初始化方法
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
//增加一个元素
//在数组末尾添加一个元素(直接在末尾添加 不用返回一个新的数组)
[mArray3 addObject:@"sb"];
//在数组指定位置插入一个元素
[mArray3 insertObject:@"4" atIndex:3];
//替换,将数组指定位置上的元素替换成用户想要的元素;
[mArray3 replaceObjectAtIndex:1 withObject:@"Rick"];
//交换,将数组指定位置上的两个元素交换位置
[mArray3 exchangeObjectAtIndex:2 withObjectAtIndex:4];
//删
//删除指定元素
[mArray3 removeObject:@"1"];
//删除指定位置上的元素
[mArray3 removeObjectAtIndex:2];
//删除数组中最后一个元素
[mArray3 removeLastObject];
[mArray3 removeAllObjects];
NSMutableArray *newMArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];
for (int i=0;i < newMArray.count;i++){
NSLog(@"%@",newMArray[i]);
}
NSLog(@"--------");
//快速枚举
for (id element in newMArray){
NSLog(@"element = %@",element);
}
//使用系统提供的枚举类型 NSEnumerator
NSEnumerator *enumerator = [newMArray objectEnumerator];
id obj;
while (obj= [enumerator nextObject]) {
//使用枚举器遍历数据元素期间,不能增加或删除数组元素,数组元素个数就会前后不一致出现异常/
NSLog(@”%@\n”,obj);
}