NSArray/NSMutableArray
在OC中,我们用NSArray
和NSMutableArray
类来表示数组。其中NSArray是NSMutableArray的父类。在OC中,我们的数组是有序的对象的集合,即我们的数组只能存储对象。在OC中,我们的数组中元素类型不能是int
,float
,CGPoint
等等类型,必须转换为对象才能放进数组内。
NSArray数组
不可变数组的初始化
//初始化
NSArray *array1 = [NSArray new];
NSArray *array2 = [NSArray array];
//创建
NSArray *array3 = [NSArray arrayWithObject:@"zhoudu"];
//创建一个里面有多个元素的不可变数组
NSArray *array4 = [NSArray arrayWithObjects:@"zhansan",@"lisi",@"wangwu", nil];
//新语法
NSArray *array5 = @[@"zhangsan",@"lisi",@"wangwu"];
//从数组读取数组
NSArray *array6 = [NSArray arrayWithArray:array5];
//从本地文件中读取一个数组
NSArray *array7 = [NSArray arrayWithContentsOfFile:@""];
//从网络中读取一个数组
NSArray *array8 =[NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
不可变数组的操作
//数组的操作
//访问数组的元素
//数组中元素的个数
NSUInteger count = array5.count;
NSString *str1 = [array6 objectAtIndex:0];
NSString *str2 = array6[0];
//访问整个数组
for (int i = 0; i < array6.count; i++) {
NSLog(@"数组中%d中的元素为%@",i,[array6 objectAtIndex:i]);
}
//NSNumber类补充
NSNumber *number1 = [NSNumber numberWithInt:5];
NSNumber *number2 = @5;//NSValue不行
//通过元素找下标
NSUInteger index = [array6 indexOfObject:@"zhangsan"];
NSLog(@"index = %lu",index);
//判断数组中是否存在元素
BOOL flag = [array6 containsObject:@"zhangsan"];
//向不可变数组中增加一个元素,生成一个新的数组
NSArray *newarray1 = [array6 arrayByAddingObject:@"maliu"];
//在数组上增加数组
NSArray *newarray2 = [array6 arrayByAddingObjectsFromArray:array6];
//通过字符串将数组中的元素生成一个新的字字符串
NSString *string1 = [newarray1 componentsJoinedByString:@"------"];
NSLog(@"string1 = %@",string1);
NSArray *array10 = @[@"123",@"456",@"789"];
NSString *string2 = [array10 componentsJoinedByString:@"-"];
NSLog(@"string = %@",string2);
NSMutableArray数组
NSMutableArray
是NSArray
的子类
NSMutableArray的初始化
//NSMutableArray
//初始化方法
NSMutableArray *mArray1 = [NSMutableArray array];
NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];
NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",nil];
NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray1];
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
NSMutableArray操作
//增加
[mArray3 addObject:mArray5];
//在数组的制定位置增加一个元素
[mArray3 insertObject:@"zhangsan" atIndex:3];
//替换
[mArray3 replaceObjectAtIndex:2 withObject:@"lisi"];
//交换,交换两个位置的元素交换
[mArray3 exchangeObjectAtIndex:1 withObjectAtIndex:4];
//删除
[mArray3 removeObject:@"1"];
//删除指定位置元素
[mArray3 removeObjectAtIndex:2];
//删除全部元素
[mArray3 removeAllObjects];
//删除最后一个元素
[mArray3 removeLastObject];
//遍历数组
for (id obj in mArray3) {
NSLog(@"%@",obj);
}