#import
//NSArry 创建不可变数组对象
//数组就是对象的有序集合
//数组存储的是对象的地址(对象的引用)
//不可变数组一旦被创建,不可以继续添加、删除或者修改
//数组中元素可以为不同类型对象
//数组的访问通过数组的下标访问,下标从0开始
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSArray *array1 = @[@"one", @"two", @"there",[NSNumber numberWithInt:123]];
NSLog(@"array1 = %@", array1);
//数组的创建及初始化
//创建空数组对象
NSArray *array2 = [[NSArray alloc] init];
NSLog(@"array2 = %@", array2);
//通过传入数组元素创建数组对象
NSArray *array3 = [[NSArray alloc] initWithObjects:@"four", @"five", @"six",nil];//nil表示数组的结束
NSLog(@"array3 = %@", array3);
//通过传入的数组创建数组对象
NSArray *array4 = [[NSArray alloc] initWithArray:array1];
NSLog(@"array4 = %@", array4);
NSArray *array5 = [[NSArray alloc] initWithArray:array4 copyItems:YES];
NSLog(@"array5 = %@", array5);
//类方法创建空的数组对象
NSArray *array6 = [NSArray array];
NSLog(@"array6 = %@", array6);
//类方法通过传入数组元素创建数组对象
NSArray *array7 = [NSArray arrayWithObjects:@"seven", @"eight", @"nine",nil];
NSLog(@"array7 = %@", array7);
//通过传入的数组对象创建数组
NSArray *array8 = [NSArray arrayWithArray:array7];
NSLog(@"array8 = %@", array8);
//创建一个元素的数组对象
NSArray *array9 = [NSArray arrayWithObject:@"ten"];
NSLog(@"array9 = %@", array9);
//数组元素的访问
//获取数组元素的个数
NSInteger count = [array1 count];
NSLog(@"count = %li", count);
//获取指定索引位置的对象
id obj1 = [array1 objectAtIndex:2];
NSLog(@"obj1 = %@", obj1);
NSLog(@"obj1 = %@", array1[2]);
//获取数组元素在数组中第一次出现的位置
NSInteger index = [array1 indexOfObject:@"two"];
NSLog(@"index = %li", index);
//获取数组中最后一个元素
NSLog(@"lastobject = %@", [array1 lastObject]);
//获取数组中第一个元素
NSLog(@"firstobject = %@", [array1 firstObject]);
//数组的比较
NSArray *array10 = @[@"one", @"two", @"there"];
NSArray *array11 = [NSArray arrayWithObjects:@"one", @"two", @"there",nil];
//判断数组是否相等
BOOL ret = [array10 isEqualToArray:array11];
if (ret == YES) {
NSLog(@"array10 == array11");
}
else{
NSLog(@"array10 != array11");
}
//返回两个数组中第一个相等的元素
id obj2 = [array10 firstObjectCommonWithArray:array11];
NSLog(@"obj2 = %@", obj2);
//数组的排序
//通常排序的数组中的元素是相同类型
//通常排序后的数组默认都是从小到大的顺序
NSArray *array12 = @[@"one", @"two", @"three", @"four"];
//- (NSArray *)sortedArrayUsingSelector:(SEL)comparator;
//@selector 生成选择器
//规则方法的返回值为>0的数的时候,底层会交换两个数组元素位置
NSArray *sortArray = [array12 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"sortArray = %@", sortArray);
}
return 0;
}