本帖最后由 竹林风 于 2018-12-4 12:01 编辑
在OC中,我们用 NSArray 类和 NSMutableArray 类来表示数组.其中, NSArray 类是 NSMutableArray 类的父类.OC中的数组是有序的对象的集合,即我们的数组只能存储对象.数组中元素类型不能是 int,float,CGPoint等类型.
NSArray(不可变数组)
1.初始化方法
[Objective-C] 纯文本查看 复制代码 //创建一个空不不可变的数组
NSArray *ary1 = [[NSArray alloc] init];
NSArray *ary2 = [NSArray array];
//创建一个里面只有一个元素的不可变数组
NSArray *ary3 = [NSArray arrayWithObject:@"abcdefg"];
//创建一个里面有多个元素的不可变数组
NSArray *ary4 = [NSArray arrayWithObjects:@"aa",@"bb",@"cc",@"dd",nil];
//新语法
NSArray *ary5 = @[@"abcdefg"];//与3等价
NSArray *ary6 = @[@"aa",@"bb",@"cc",@"dd"];//与4等价
NSArray *ary7 = [NSArray arrayWithArray:ary2];
//从本地文件中读取数组
NSArray *ary8 = [NSArray arrayWithContentsOfFile:@""];
//从网络文件中读取数组
NSArray *ary9 = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@""]];
2.数组元素个数
[Objective-C] 纯文本查看 复制代码 NSUInteger count = ary6.count;
3.访问数组元素
[Objective-C] 纯文本查看 复制代码 //访问ary6中的第一个元素
NSString *str = [ary6 objectAtIndex:0];
for (int i = 0; i < ary6.count; i++) {
NSLog(@"数组中第%d个元素为:%@",i,[ary6 objectAtIndex:i]);
}
4.通过数组中的元素找对应的下标
[Objective-C] 纯文本查看 复制代码 NSUInteger index = [ary6 indexOfObject:@"aa"];
NSLog(@"index = %lu",(unsigned long)index);
5.判断数组中是否存在某上元素
[Objective-C] 纯文本查看 复制代码 BOOL flag = [ary6 containsObject:@"bb"];
6.向不可变数组中增加一个元素,生成一个新的数组
[Objective-C] 纯文本查看 复制代码 NSArray *newAry = [ary6 arrayByAddingObject:@"ee"];
NSArray *newAry1 = [ary6 arrayByAddingObjectsFromArray:ary6];
NSString *string = [newAry componentsJoinedByString:@","];
NSArray *array = @[@"123",@"456",@"789",@"000"];
NSString *string1 = [array componentsJoinedByString:@"-"];
NSLog(@"%@",string1);
NSArray *array1 = [string1 componentsSeparatedByString:@"-"];
NSLog(@"array = %@",array1);
NSString *string2 = [array1 componentsJoinedByString:@""];
NSLog(@"%@",string2);
看结果:
NSMutableArray(可变数组) `NSMutableArray` 为 `NSArray` 的子类.
1.初始化方法
[Objective-C] 纯文本查看 复制代码 //初始化一个空的可变数组
NSMutableArray *mArray1 = [NSMutableArray array];
NSMutableArray *mArray2 = [NSMutableArray arrayWithObject:@"1"];
NSMutableArray *mArray3 = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
NSMutableArray *mArray4 = [NSMutableArray arrayWithArray:mArray2];
//可变数组独有的初始化方法
NSMutableArray *mArray5 = [NSMutableArray arrayWithCapacity:10];
NSMutableArray *mArray6 = [NSMutableArray arrayWithContentsOfFile:@""];
NSMutableArray *mArray7 = [NSMutableArray arrayWithContentsOfURL:@""];
2.增加元素
[Objective-C] 纯文本查看 复制代码 //在数组的末尾增加一个元素
[mArray3 addObject:@"5"];
//在数组的指定位置增加一个元素
[mArray3 insertObject:@"yanshuxin" atIndex:3];
3.元素替换
[Objective-C] 纯文本查看 复制代码 //将数组指定位置上的元素替换成用户想要的元素
[mArray3 replaceObjectAtIndex:2 withObject:@"sb"];
4.元素交换
[Objective-C] 纯文本查看 复制代码 [mArray3 exchangeObjectAtIndex:1 withObjectAtIndex:4];
5.删除元素
[Objective-C] 纯文本查看 复制代码 //删除指定元素
[mArray3 removeObject:@"1"];
//删除指定位置上的元素
[mArray3 removeObjectAtIndex:2];
//删除数组中最后一个元素
[mArray3 removeLastObject];
//删除所有元素
[mArray3 removeAllObjects];
6.快速遍历
[Objective-C] 纯文本查看 复制代码 //for(类型 对象 in 集合)
for (NSString *ele in mArray3) {
NSLog(@"ele = %@",ele);
}
看效果:
就介绍到这里吧,这些基本都是项目开发中最常用的。
附件:
Test-NSArray.zip
(153.47 KB, 下载次数: 0)
|