一、NSArray的创建
//数组是一个有序的集合,在OC的数组中只能够存储对象,但是对象的类型没有限制。
//创建不可变数组
NSArray *arr1 = [[NSArray alloc] init];
NSArray *arr2 = [[NSArray alloc] initWithObjects:@"1", @"2", @"3", nil];
NSArray *arr3 = [[NSArray alloc] initWithArray:@[@"1", @"2"]];
NSArray *arr4 = [NSArray array];
NSArray *arr5 = [NSArray arrayWithObjects:@"4", @"5", nil];
NSArray *arr6 = [NSArray arrayWithArray:@[@"6"]];
NSArray *arr7 = @[@"1", @"2", @"6"];
二、NSArray常用的属性和方法
NSArray *arr = @[@"123", @"456", @"789"];
//数组中元素的个数
NSLog(@"%ld", arr.count);
//数组中第一个对象
NSLog(@"%@", arr.firstObject);
//数组中最后一个对象
NSLog(@"%@", arr.lastObject);
2018-06-19 16:15:19.332572+0800 NSArrayDemo[12838:1098517] 3
2018-06-19 16:15:19.332769+0800 NSArrayDemo[12838:1098517] 123
2018-06-19 16:15:19.333513+0800 NSArrayDemo[12838:1098517] 789
NSArray *arr = @[@"123", @"456", @"789"];
NSArray *arr1 = @[@"345", @"789", @"123"];
//获取某个下标的对象
NSLog(@"%@", [arr objectAtIndex:1]);
//获取某个对象在该数组中的位置
NSLog(@"%ld", [arr indexOfObject:@"789"]);
//数组中是否包含某个对象
NSLog(@"%d", [arr containsObject:@"456"]);
//把数组中的对象以‘#’连接起来返回值是一个字符串
NSLog(@"%@", [arr componentsJoinedByString:@"&"]);
//判断两个数组是否相等
NSLog(@"%d", [arr isEqualToArray:arr1]);
//遍历数组
//obj:表示当前对象
//idx:表示当前对象的下标
//stop:设置当前对象遍历结束的时候是否结束当前的遍历
[arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
NSLog(@"%@", obj);
}];
//排序
//把数组中的元素从小到大进行排序
NSArray *sortArr = [arr1 sortedArrayUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return [obj1 compare:obj2];
}];
NSLog(@"%@", sortArr);
2018-06-19 16:50:23.718423+0800 NSArrayDemo[14490:1197734] 456
2018-06-19 16:50:23.718728+0800 NSArrayDemo[14490:1197734] 2
2018-06-19 16:50:23.719182+0800 NSArrayDemo[14490:1197734] 1
2018-06-19 16:50:23.719750+0800 NSArrayDemo[14490:1197734] 123&456&789
2018-06-19 16:50:23.719859+0800 NSArrayDemo[14490:1197734] 0
2018-06-19 16:50:23.720016+0800 NSArrayDemo[14490:1197734] 123
2018-06-19 16:50:23.720504+0800 NSArrayDemo[14490:1197734] 456
2018-06-19 16:50:23.721481+0800 NSArrayDemo[14490:1197734] 789
2018-06-19 16:50:23.722162+0800 NSArrayDemo[14490:1197734] (
123,
345,
789
)
三、NSMutableArray常用的属性和方法
//NSMutableArray继承于NSArray,因此NSArray中的所有属性和方法在NSMutableArray中依然适用
//NSMutableArray:是可变数组,创建之后可以给这个数组添加元素,删除元素等操作。
//NSArray:是不可变数组,一旦创建不可以更改数组中元素内容
NSMutableArray *mutableArr = [NSMutableArray array];
NSLog(@"%@", mutableArr);
//向数组中添加对象 注意:默认添加对象在数组的最后
[mutableArr addObject:@"123"];
NSLog(@"%@", mutableArr);
//向数组某个位置插入元素 注意:插入的位置不能超过当前数组的个数
[mutableArr insertObject:@"0" atIndex:1];
NSLog(@"%@", mutableArr);
//把一个数组中的元素全部添加到本数组中
[mutableArr addObjectsFromArray:@[@"7", @"8", @"9", @"9"]];
NSLog(@"%@", mutableArr);
//排序 这个排序是异步的,不能马上得到结果
[mutableArr sortUsingComparator:^NSComparisonResult(id _Nonnull obj1, id _Nonnull obj2) {
return [obj2 compare:obj1];
}];
//移除数组中的元素 注意:该方法移除的是数组中所有的该对象
[mutableArr removeObject:@"9"];
NSLog(@"%@", mutableArr);
//移除数组中当前下标下的元素
[mutableArr removeObjectAtIndex:1];
NSLog(@"%@", mutableArr);
//移除数组中最后一个元素
[mutableArr removeLastObject];
NSLog(@"%@", mutableArr);
//移除数组中全部元素
[mutableArr removeAllObjects];
NSLog(@"%@", mutableArr);
2018-06-19 17:30:25.807354+0800 NSArrayDemo[15111:1305905] (
)
2018-06-19 17:30:25.807540+0800 NSArrayDemo[15111:1305905] (
123
)
2018-06-19 17:30:25.807650+0800 NSArrayDemo[15111:1305905] (
123,
0
)
2018-06-19 17:30:25.807785+0800 NSArrayDemo[15111:1305905] (
123,
0,
7,
8,
9,
9
)
2018-06-19 17:30:25.808120+0800 NSArrayDemo[15111:1305905] (
8,
7,
123,
0
)
2018-06-19 17:30:25.808297+0800 NSArrayDemo[15111:1305905] (
8,
123,
0
)
2018-06-19 17:30:25.808415+0800 NSArrayDemo[15111:1305905] (
8,
123
)
2018-06-19 17:30:25.808576+0800 NSArrayDemo[15111:1305905] (
)
网友评论