创建NSArray
构造方法
[[NSArray alloc] init];
[[NSArray alloc] initWithObjects:(nonnull id), ..., nil];
[[NSArray alloc] initWithArray:(nonnull NSArray *)];
[NSArray alloc] initWithObjects:(const id _Nonnull __unsafe_unretained *) count:(NSUInteger)
类工厂方法
[NSArray array];
[NSArray arrayWithObjects:(nonnull id), ..., nil];
[NSArray arrayWithArray:(nonnull NSArray *)];
[NSArray arrayWithObjects:(const id _Nonnull __unsafe_unretained *) count:(NSUInteger)]
创建一个数组( 推荐写法)
NSArray *array = @[对象1, 对象2, 对象3, . . . ];
count 获取元素的个数
firstObject 获取第0个元素
lastObject 获取最后一个元素
objectAtIndex: 获取指定位置的元素
indexOfObject:获取指定对象在数组中的位置, 如果数组中没有指定对象, 那么就返回NSNotFound.
containsObject:判断数组中是否包含某个对象(返回 BOOL)
遍历
1 forin
2 迭代器
obj: 当前获取到的元素
idx: 当前获取到的元素的索引
idx: 当前获取到的元素的索引
stop: 标记是否需要停止循环
对整型可以通过 sortedArrayUsingComparator:方法进行并轨排序
eg NSArray *res = [array sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return obj1 < obj2;
}];
只要将对象放入数组之后, 就可以利用数组统一的给数组中所有的对象发送消息
[arr makeObjectsPerformSelector:@selector(method)];
字符数组与字符串的相互转换
NSString *string = [array componentsJoinedByString:@“xxx”];(各数组对象以 xxx连接)
NSArray *array = [string componentsSeparatedByString:@“x”];(字符串以符号'x’分割为字符串后放入数组中)
arrayWithContentsOfFile:从路径读取
NSMutableArray
增加[array addObject:@"xxx"];
插入[array insertObject:@"xxx" atIndex:idx];
修改[array replaceObjectAtIndex:0 withObject:@“xxx"];
快速修改 array[idx] = @"xxx”;(推荐写法)
删除[array removeObject:@“xxx"];
[array removeObjectAtIndex:2];
获取
[array objectAtIndex:idx]
[array indexOfObject:idx]
[array firstObject]
[array lastObject]
array[0];