不可变数组 NSArray
C语言的数组:盛放同一类型变量的有序容器
OC语言的数组:只能存放对象的有序容器
在控制台中,数组以 () 的形式打印,多个元素间使用‘,’间隔
main.m
//1.创建
//1.实例方法
NSArray *array1 = [[NSArray alloc]init];
NSArray *array2 = [[NSArray alloc]initWithObjects:@"0",@"1",@"2",nil];
NSLog(@"%@",array2);
//2.类方法
NSArray *array3 = [NSArray array];
NSArray *array4 = [NSArray arrayWithObjects:@"0",@"1",@"2",nil];
NSArray *array7 = [NSArray arrayWithObject:@"0"];//一个元素的数组
//3.用数组构建数组 -> 相当于复制数组
NSArray *array5 = [[NSArray alloc]initWithArray:array2];
// NSArray *array6 = array5;//这不是复制 这是创建指针来指向数组,array6和array5指向的是同一个数组
NSArray *array8 = [NSArray arrayWithArray:array2];
//4.快速创建
NSArray *array8 = @[@"aaa",@"bbb",@"ccc",@"aaa"];
NSObject *objc1 = [[NSObject alloc]init];
NSObject *objc2 = [[NSObject alloc]init];
NSObject *objc3 = [[NSObject alloc]init];
NSArray *array9 = @[objc1,objc2,objc3];
//2.属性
//数组中的对象的个数
NSLog(@"count = %ld",array8,count)
//3.方法
//1.获取数组中的对象
NSLog(@"%@",array8[1]);
NSLog(@"%@",[array8 objectAtIndex:1]);
//第一个对象
NSLog(@"%@",[array8 firstObject]);
//最后一个对象
NSLog(@"%@",[array8 lastObject]);
//2.获取对象的下标
NSLog(@"%ld",[array8 indexOfObject:@"aaa"]);
NSLog(@"%ld",[array8 indexOfObjectIdenticalTo:@"aaa"]);
//限定范围 查找元素下标
NSLog(@"%ld",[array8 idexOfObject:@"aaa" inRange:NSMakeRange(2,2)]);
//3.判断数组是否包含某个对象
BOOL isTrue = [aray8 containsObject:@"aaa"];
//4.数组元素以字符串的形式输入
/*
是NString的分割方法的相反操作
*/
//连接
NSString *string = [array8 componentsJoineByString:@"~!~"];
NSLog(@"%@",string);
//分割
NSArray *array10 = [string componentSeparatedByString:@"~!~"];
NSLog(@"%@",array10);
//5.遍历
//传统遍历
for (int i = 0;i< array10.count;i++)
{
NSLog(@"%@",array10[i]);
}
/*
快速遍历
for (数组中对象的类型 *每次获取的对象 in 要遍历的数组)
*/
for (NSString *string in array10)
{
NSLog(@"%@",string);
}