黑马程序员——OC语言日志——NSArray的介绍和使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、NSArray的基本介绍

1、NSArray是oc 中的数组类,开发过程中建议尽量使用NSArray替代C语言中的数组。

C语言中的数组的弊端:
1)只能存放一种类型的数据;
2)不能方便的动态添加数组元素、不能很方便的动态删除数组元素(长度固定)。
2、NSArray使用注意事项。
1)只能存放OC对子昂,并且是有序的 ;
2)不能存储非OC对象,比如intfloat double char enum struct等;
3)它是不可变的,一旦初始化完毕后,它里面的内容就永远时候固定的,不能删除里面的元素,也不能再往里面添加元素。

二、NSArray创建方式

#import 
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
       //创建一个空数组
        NSArray *arry1=[NSArray array];
        NSLog(@"arry1=%@",arry1);
        //创建数组,只有”–“素
        NSArray *arry2 = [NSArray arrayWithObject:@"a"];
        NSLog(@"arry2=%@",arry2);
        //创建数组,多个元素,常见方法
        NSArray *arry3 = [NSArray arrayWithObjects:@"2",@1, nil];
         NSLog(@"arry3=%@",arry3);
        /*调用对象方法,创建数组,NSArray中不呢个存储nil,NSArray认为nil是数组的结束(nil是数组元素结束的标记)。nil就是0,0是基本数据类型不能存放到NASArray中。*/
        NSArray *arry4=[[NSArray alloc] initWithObjects:@"1",@"2",[NSNull null], nil];
        NSLog(@"arry4=%@",arry4);
        //用一个数组可以创建另一个数组
        NSArray *arry5 = [NSArray arrayWithArray:arry3];
        NSLog(@"arry5=%@",arry5);
    }
    return 0;
}
三、常见用法

#import 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
       NSArray *arry3 = [NSArray arrayWithObjects:@"2",@1, @"langya",nil];
        //获取数组长度
        NSLog(@"arry3长度为:%ld",arry3.count);
        //根据下表获取相应对象
        NSLog(@"%@",[arry3 objectAtIndex:2]);
        //返回元素得到下标
        NSUInteger loc = [arry3 indexOfObject:@"langya"];
        NSLog(@"%ld",loc);
        //数组中是否包含了某个元素
        if([arry3 containsObject:@"2"]){
            NSLog(@"包含");
        }
        else{
            NSLog(@"不包含");
        }
        //用简化的方式,来定义和“问数组
        NSArray *arry = @[@"ee",@"rr",@"gg"];
        NSLog(@"%@",arry);
        //用简化的方式访问数组
        NSString *str = arry[2];
        NSLog(@"%@",str);
    }
    return 0;
}
四、遍历方法

#import 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSArray *arr = @[@"one",@"tow",@"three",@"four"];
        //1)普通方式,通过下标
        for(int i=0;i

五、读写文件
#import 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        //写文件
        NSArray *arry = [NSArray arrayWithObjects:@"one",@"tow",@"three",@"four", nil];
        BOOL arrwrite = [arry writeToFile:@"//Users/hongjitong/Desktop/arry.plist" atomically:YES];
                         if(arrwrite){
                             NSLog(@"写入成功");
                         }
        //读文件
        NSArray *reaarry = [NSArray arrayWithContentsOfFile:@"//Users/hongjitong/Desktop/arry.plist"];
        NSLog(@"%@",reaarry);
    }
    return 0;
}
六、NSArray与字符串


#import 

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        NSArray *arry = @[@1,@2,@3,@4,@5];
        //1)把数组中的元素用“-”链接起来1-2-3-4-5
        NSString *str = [arry componentsJoinedByString:@"-"];
        NSLog(@"%@",str);
        //2)给一个字符串,分割成数组400-800-8007
        NSString *str1 = @"400-800-8007";
        NSArray *arry2 = [str1 componentsSeparatedByString:@"-"];
        NSLog(@"%@",[arry2 firstObject]);
        NSLog(@"%@",arry2 [1]);
        NSLog(@"%@",[arry2 lastObject]);
        //如果是400-800-8007#500-600-12570
        //先分开为400-800-8007和500-600-12570
        NSString *str3 = @"400-800-8007#500-600-12570";
        NSArray *arry3 = [str3 componentsSeparatedByString:@"#"];
        NSLog(@"%@",arry3);
        //继续分割各各元素400-800-8007和500-600-12570
        NSArray *arry31 = [arry3[0] componentsSeparatedByString:@"-"];
        NSArray *arry32 = [arry3[1] componentsSeparatedByString:@"-"];
        //打印
        NSLog(@"%@,%@",arry31,arry32);
        
        
    }
    return 0;
}



你可能感兴趣的:(OC语言日志)