------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
//NSArray的特点:
//一旦创建成功,内容不可改变
//只能存放OC对象
//1)创建一个空数组
NSArray *arr1 = [NSArray array];
NSLog(@"arr1 = %@",arr1);
//2)创建数组,并且只有一个元素
NSArray *arr2 = [NSArray arrayWithObject:@"1"];
NSLog(@"arr2 = %@",arr2);
//最常用! 3)创建数组,有多个元素,多种类型
//nil表示数组赋值结束,所以中间不能写nil,可以写 [NSNull null]
NSArray *arr3 = [NSArray arrayWithObjects:@"one",@"two",@1,nil];
NSLog(@"arr3 = %@",arr3);
//4)调用对象方法,创建数组
NSArray *arr4 = [[NSArray alloc]initWithObjects:@"three",[NSNull null],@"four",nil];
NSLog(@"arr4 = %@",arr4);
//5)用一个数组可以创建另外一个数组,此时arr5和arr3一样了
NSArray *arr5 = [NSArray arrayWithArray:arr3];
NSLog(@"arr5 = %@",arr5);
数组的常见方法
NSArray *arr2= [NSArray arrayWithObjects:@"one",@"two",@1,nil];
//1)获得数组的长度 count获取数组的元素个数
NSLog(@"%ld",arr2.count);
//2)根据下标,获取下标对应的对象
NSLog(@"%@",[arr2 objectAtIndex:2]); //获取下标为2的元素(第三个元素)
//3)返回元素的下标
NSUInteger loc = [arr2 indexOfObject:@"two"];
NSLog(@"%ld",loc);
//4)数组中是否包含了某个元素
if ([arr2 containsObject:@"one"]) {
NSLog(@"包含");
}else{
NSLog(@"不包含");
}
用简化的方式,来定义和访问数组元素
//1)用简化的方式定义数组
//格式: @[数组元素]
NSArray *arr = @[@"1",@"2",@3,@"four"];
NSLog(@"%@",arr);
NSLog(@"%@",[arr objectAtIndex:2]);
//2)用简化的方式访问数组元素
NSString *str = arr[1]; //c语言形式的数组元素访问
NSLog(@"%@",str);
NSArray的遍历方式
//定义一个数组
NSArray *arr = @[@"one",@"two",@"three",@"four"];
//对数组进行遍历
//1)普通方式,通过下标访问
for (int i=0; i<arr.count; i++) {
NSLog(@"%@",arr[i]);
}
//2)快速枚举 for循环的增强形式 助记符为 forin
for (NSString * str in arr) {
NSLog(@"->%@",str);
}
//3)使用block的方式,进行访问
// 数组元素 元素下标
[arr enumerateObjectsUsingBlock:^(id _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
// 是否停止
//stop:YES 会停止 stop:NO 不会停止
if(idx == 2){
*stop = YES; //当执行到下标为2时就停止打印,类似c语言的break
}else{
NSLog(@"idx = %ld,obj = %@",idx,obj);
}
}];
NSArray读写文件
NSArray *array = [NSArray arrayWithObjects:@"one",@"two",@"three",nil];
//把NSArray中得文件写入到文件中
//arr.plist 一种特殊的文件格式
BOOL isWrite = [array writeToFile:@"/Users/zyh/Desktop/arr.plist" atomically:YES];
if (isWrite) {
NSLog(@"写入成功");
}
//从文件读取数组
NSArray *readArr = [NSArray arrayWithContentsOfFile:@"/Users/zyh/Desktop/arr.plist"];
NSLog(@"readArr = %@",readArr);
//数组文件读写有两种格式 plist xml
NSArray与字符串
//定义一个数组
NSArray *arr = @[@1,@2,@3,@4];
//1)需求:把数组中的元素用“-”连接起来
// 1-2-3-4
//[数组 componentsJoinedByString:@"分隔符"];
NSString * str = [arr componentsJoinedByString:@"-"];
NSLog(@"str = %@",str);
//2)给一个字符串,分隔成一个数组
//400-886-0078 //取得 400 886 0078
//[字符串 componentsSeparatedByString:@"分隔符"];
NSString *str2 = @"400-886-0078";
NSArray *arr2 = [str2 componentsSeparatedByString:@"-"];
NSLog(@"arr2 = %@",arr2);
//多种类型分隔符
NSString *str3 = @"400-886-0078#400-111-1111";
NSArray *arr3 = [str3 componentsSeparatedByString:@"#"];
NSLog(@"arr3 = %@",arr3);
NSArray *arr4 = [arr3[0] componentsSeparatedByString:@"-"];
NSLog(@"arr4 = %@",arr4);
NSArray *arr5 = [arr3[1] componentsSeparatedByString:@"-"];
NSLog(@"arr5 = %@",arr5);