黑马程序员--NSArray的使用

来源:互联网 发布:2017淘宝食品新规 编辑:程序博客网 时间:2024/04/28 16:35

------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);


0 0