一、数组
* OC数组中的成员是有序的,索引从0开始
* 数组中存储的都是对象,对象不分类型(基本数据类型不能存放)
* 数组分为可变数组和不可变数组
二、不可变数组(NSArray)
// 创建不可变数组
NSArray *array1 = [NSArray arrayWithObject:@"hello"];
NSLog(@"%@", array1);
// 在创建有多个元素的数组,需要在元素的结尾处,且只能在结尾处添加一个nil对象,表示数组元素到此结束
NSArray *array2 = [NSArray arrayWithObjects:@"hello", @"world", @"中文", nil];
NSLog(@"%@", array2);
// 如果数组中某个元素在创建时不能确定,我们可以使用NSNull对象来占位。
NSArray *array3 = [NSArray arrayWithObjects:@"hello",[NSNull null] ,@"world", nil];
NSLog(@"%@", array3);
三、不可变数组的操作
// 获取数组元素的个数
int a = (int)[array3 count];
NSLog(@"%d", a);
// 获取某个索引值位置的元素
// 因为不能确定获取到的元素是属于哪个类,所以在定义对象时必须是泛型。instancetype只能用在方法的返回值部分,来确保返回值的类型安全,不能够用在这里声明一个对象,在这里需要用id
id temp = [array3 objectAtIndex:2];
NSLog(@"%@", temp);
// 获取某个对象在元素中的索引,如果这个对象不在数组中,则返回一个负数
int index = (int)[array3 indexOfObject:@"m"];
NSLog(@"%d", index);
// 遍历数组
for (int i = 0; i < [array3 count]; i++) {
id obiect = [array3 objectAtIndex:i];
NSLog(@"%@", obiect);
}
四、可变数组(NSMutableArray)的操作
// 创建一个数组
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
// 添加一个新元素(按顺序添加)
[mArray addObject:@"5"];
NSLog(@"%@", mArray);
// 插入一个新元素,到指定位置
[mArray insertObject:@"12" atIndex:2];
NSLog(@"%@", mArray);
// 交换两个元素的位置
[mArray exchangeObjectAtIndex:3 withObjectAtIndex:4];
NSLog(@"%@", mArray);
// 替换某个元素
[mArray replaceObjectAtIndex:3 withObject:@"您好"];
NSLog(@"%@", mArray);
// 删除元素
// 根据下标删除元素
[mArray removeObjectAtIndex:1];
NSLog(@"%@", mArray);
// 直接删除指定对象
[mArray removeObject:@"您好"];
NSLog(@"%@", mArray);
// 删除最后一个元素
[mArray removeLastObject];
NSLog(@"%@", mArray);
// 删除全部元素
[mArray removeAllObjects];
NSLog(@"%@", mArray);