美文网首页猿起码农之亮眼
NSArray和NSMutableArray使用

NSArray和NSMutableArray使用

作者: 飞天猪Pony | 来源:发表于2016-08-19 15:12 被阅读464次

    NSArray不可变数组

    • NSArray特点
    • NSArray的创建
    • NSArray常用方法
    • NSArray简化形式
    • NSArray的遍历
    • NSArray读写文件
    • NSArray与字符串

    1、NSArray特点

    1、一旦创建成功,内容不可改变(NSArray是不可变数组,NSMutableArray是可变数组)
    2、只能存放OC对象
    

    2、NSArray的创建

    创建一个空数组:
    NSArray*arr1 =[NSArray  array]; 
    
    创建多元素数组:
    NSArray *arr2 =  [NSArray arrayWithObject:@”one”,@”two”,@”three”,nil];  
    
    用一个数组创建另一个数组:
    NSArray *arr3 = [NSArray arrayWithArray: arr2];  
    

    初始化方法:
    init返回一个空数组
    initWithArray从已有数组初始化
    initWithContentsOfFile//从plist文件加载
    initWithContentsOfUrl//从网络地址上获取
    initWithObject用一个对象初始化
    initWithObjects从多对象初始化

    3、NSArray常用方法

    NSArray *arr = [NSArray arrayWithObject:@”one”,@”two”,@”three”,@”four”,nil];  
    或者arr =@[@”one”,@”two”,@”three”,@”four”]; 
    
    获取数组的长度,count获取数组元素的个数
    int arrLength = arr.count; 
    arrLength = [arr count];  
    
    根据下标,获取下标对应的对象
    NSString *str = [arr objectAtIndex:2];//打印出来的是three,因为数组元素是从0开始的(0,1,2 . . .)  
    
    返回元素的下标:
    int intnum = [arr indexOfObject:”four”];//返回的下标是3 
    
    数组中是否包含了某个元素:
    if ([arrcontainsObject:@”four”] == YES){  
        NSLog(@”包含此元素”);  
    }else{  
        NSLog(@”不包含此元素”);  
    } 
    

    4、NSArray简化形式

    用简化的方法定义数组:
    NSArray*arr = @[@”one”,@”two”,@”three”];  
    
    访问数组元素:
    NSString *str = [arr objectAtIndex:1];//返回two  
    
    用简化的方法访问数组元素:
    NSString *str =arr[1];//返回two  
    

    5、NSArray的遍历

    定义一个数组:
    NSArray*arr = @[@”one”,@”two”,@”three”,@”four”];  
    
    对数组进行遍历(两种方法):
    for (int i = 0;i < arr.count;i++){  
        NSLog(@”%@”,arr[i]);  
    }  
    或者
    for (NSString *str  in arr){  
        NSLog(@”%@”,str);  
    }  
    

    6、NSArray读写文件

    写入
    NSArray *arr = @[@”one”,@”two”,@”three”];  
    把arr中的内容写入到文件中,.plist是一种特殊的文件格式:
    BOOL isWrite = [arr writeToFile:@”/Users/xingming/Desktop/arr.xml” atomically: YES];  
    if (isWrite){  
        //判断是否写入成功,如果isWrite是真,则执行此方法  
        NSLog(@”success!”);  
    }  
    
    读取
    NSArray *readArr = [NSArray arrayWithContentsOfFile:@”/Users/xingming/Desktop/arr.xml”];  
    NSLog(@”%@”,readArr);//打印  
    

    7、NSArray与字符串

    ①把数组拼接成字符串
    ②把字符串拆分成数组

    把数组拼接成字符串
    定义一个数组:
    NSArray*arr =@[@”1”,@”2”,@”3”,@”4”];  
    把数组arr中的元素用“-”连接起来,变成1-2-3-4
    NSString*str = [arr componentsJoinedByString: @”-”];  
    NSLog(@”str = %@”,str);//打印结果:str = 1-2-3-4  
    
    把字符串拆分成数组
    NSArray *aArray = [str componentsSeparatedByString:@"-"];;  
    NSLog(@”aArray= %@”,aArray);//打印 
    

    NSMutableArray可变数组

    • 为数组分配内存空间
    • 添加对象
    • 向尾部添加数组对象
    • 删除数组元素
    • 替换某所引值对应的对象
    • 数组迭代遍历

    1、为数组分配内存空间

    为数组分配内存空间
    NSMutableArray *array = [NSMutabeArray arrayWithCapacity:10];  
    //初始化可变数组对象的长度,如果后面代码继续添加数组超过长度10以后NSMutableArray的长度会自动扩充,10是自己可以设置的颗粒度。
    

    2、添加对象

    添加对象
    方法:- (void)addObject: (id)anObject;
    例子:
    NSMutableArray*array = [NSMutableArray arrayWithCapacity:10];  
    [array addObject:@“One”];  
    [array addObject:@“Two”];  
    NSLog(@“array:%@”,array);  
    打印:  
    array:(  
       One,  
       Two  
    )  
    

    3、向尾部添加数组对象

    方法:addObjectsFromArray:
    NSArray *array = @[@"One",@"Two",@"Three"];  
    NSMutableArray*mutArr = [NSMutableArray arrayWithArray:array];  
    NSLog(@“mutArr=%@”,mutArr);  
    打印:  
     mutArr= (  
       One,  
       Two,  
        Three  
    )  
    

    4、删除数组元素

    [array removeObject:(id)] :删除数组中指定元素,根据对象isEqual消息判断。
    [array removeObjectIdenticalTo:(id)] :删除数组中指定元素,根据对象的地址判断
    [array removeObjectIdenticalTo:(id) inRange:(NSRange)] :在指定范围内删除指定的元素。
    [array removeObjectAtIndex:(NSUInteger)]:删除数组中指定脚标索引的数据。
    [array removeObjectsInArray:(NSArray *)] :删除一个数组的元素。
    [array removeAllObjects]:删除数组中所有的元素(清空数组)
    说明:array是可变数组
    

    5、替换某所引值对应的对象

    方法:replaceObjectAtIndex:withObject:
    NSMutableArray *mutArr = [NSMutableArray arrayWithObjects:@"One",@"Two",@"Three", nil];  
    [mutArr replaceObjectAtIndex:2 withObject:@"Four"];  
    NSLog(@"mutArr= %@",mutArr);  
    打印:  
     mutArr= (  
       One,  
       Two,  
       Four  
    ) 
    

    6、数组迭代遍历

    NSObject *obj = [[NSObject alloc] init];  
    NSMutableArray*muArray = [NSMutableArray arrayWithCapacity:6];  
    [muArray addObject:@"对象1"];  
    [muArray addObject:@"对象2"];  
    [muArray addObject:obj];  
    NSEnumerator*enmuerator = [muArray objectEnumerator];  
    id object;  
    while(object = [enmueratornext Object]) {  
       NSLog(@"数组中的对象:%@",object);  
    }  
    打印: 数组中的对象:对象1  
          数组中的对象:对象2  
          数组中的对象:<NSObject: 0x7a15d2d0>  
    

    相关文章

      网友评论

        本文标题:NSArray和NSMutableArray使用

        本文链接:https://www.haomeiwen.com/subject/rkubsttx.html