数组分为:不可变数组(NSArray)和可变数组(NSMutableArray)
数组是存储在UI中可显示内容的集合, 数组必须先初始化才能使用
/* NSArray */
1.创建不可变数组
NSArray *arr = [NSArray array];
NSArray *arr1 =[NSArray arrayWithObjects:@"iphone",@"sanung",@"miui", nil];
2.获取元素的个数
NSLog(@"%ld", [arr1 count]);
3.根据下标获取对象, 根据对象获取下标
NSLog(@"%@", [arr1 objectAtIndex:2]);
NSLog(@"%ld", [arr1 indexOfObject:@"iphone"]);
4.遍历数组
for (int i = 0; i < [arr1 count]; i++) {
NSLog(@"%@",[arr1 objectAtIndex:i]);
}
for (NSString *str in arr1) {
NSLog(@"%@", str);
}
/* NSMutableArray */
1.创建可变数组对象
NSMutableArray *marr1 = [NSMutableArray arrayWithObjects:@"windows",@"unix", nil];
2.添加元素
[marr1 addObject:@"linux"];
3.插入元素
[marr1 insertObject:@"Mac" atIndex:0]; //根据下标插入元素
4.删除元素
[marr1 removeLastObject];
[marr1 removeObject:@"Mac"];
[marr1 removeAllObjects];
5.替换
[marr1 replaceObjectAtIndex:0 withObject:@"ASD"];
6.交换两个指定的元素
[marr1 exchangeObjectAtIndex:0 withObjectAtIndex:1];
/* NSNumber */
所有的基础类型变量是不能当对象存储到容器中(数组,字典等)因此,基础类别的变量想要储存的话需要转换成别的对象才能存储.
(1)存储
int a = 10;
NSNumber *num = [NSNumber numberWithInt:a];
[arr1 addObject:num];
(2)取值 NSNumber *num2 = [arr1 lastObject];
int b = [num2 intValue];
/* NSValue */
和NSNumber的功能一样, 区别是将结构体转换成对象
NSRange range = NSMakeRange(0, 0);
NSValue *value = [NSValue valueWithRange:range];
(2)取值
NSRange range1 = [value rangeValue];
集合分为: 不可变集合(NSSet)和可变集合(NSMutableSet)
/* NSSet */
1. 创建 (常见的初始化方法)
(1) NSSet *set = [NSSet setWithObjects:@"123",@"123",@"456", nil];
(2) NSArray *arr = [NSArray arrayWithObjects:@"1",@"3",@"3", nil];
NSSet *set1 = [NSSet setWithArray:arr];
(3) NSSet *set2 = [[NSSet alloc]initWithArray:@[@"1",@"1"]];
2.获取元素个数(集合中元素师唯一且不重复的)
NSLog(@"%ld", [set count]);
3.获取set中的某个元素
[set anyObject];
4.判断set中是否包含某一个对象
[set containsObject:@"123"];
5.添加元素
set = [set setByAddingObject:@"4"]; //添加对象
set = [set setByAddingObjectsFromSet:set1]; // 把其他set的元素添加集合里
/* NSMutableSet */
1.创建
NSMutableSet *mSet = [NSMutableSet setWithObjects:@"123",@"456",@"789", nil];
2.添加元素, 移除元素
[mset addObject:@"000"];
[mset removeObject:@"123"];
3.遍历集合
NSMutableSet *mset1 = [[NSMutableSet alloc]initWithObjects:@"1",@"2",@"3", nil];
for (NSString *str in [mset1 allObjects]) {
NSLog(@"%@", str);
}
/* 数组排序 */
数组进行由小到大的排序
(1)不可变数组
NSArray *array1 = [NSArray arrayWithObjects:@"2", @"1", @"3", @"5", nil];
//将数组进行排序
NSArray *sortArray1 = [array1 sortedArrayUsingSelector:@selector(compare:)];
//输出数组
for (NSString *str in sortArray1) {
NSLog(@"%@", str);
}
(2)可变数组
NSMutableArray *mArray = [NSMutableArray arrayWithArray:array1];
//将数组进行排序
[mArray sortUsingSelector:@selector(compare:)];
//输出数组
for (NSString *str in mArray) {
NSLog(@"%@", str);
}