美文网首页Objective-C基础
NSArray和NSMutableArray基本用法

NSArray和NSMutableArray基本用法

作者: 噬尾蛇 | 来源:发表于2017-05-08 20:22 被阅读85次

    NSArray基本用法:

        //初始化数组
         NSArray *array1=[NSArray array];
         NSArray *array2=[NSArray alloc]initWithObjects:@"three",@"four", nil];
    
        //创建数组
        NSArray *array3=[NSArray arrayWithObjects:@"Hello",@"World",@"Objective",@"C",nil];
        NSArray *array4=[NSArray arrayWithArray:array1];
    

    NSArray常用方法:

        //1)获取数组的长度  count获取数组的元素的个数
        NSLog(@"%ld",arr3.count);
    
        //2)根据下标,获取下标对应的对象
        NSLog(@"%@",[arr3 objectAtIndex:3]);
    
        //3)返回元素的下标
        NSUInteger loc = [arr3 indexOfObject:@"World"];
        NSLog(@"%ld",loc);
    
        //4)数组中是否包含了某个元素
        if([arr3 containsObject:@"four"]){
            NSLog(@"包含此元素");
        }else{
            NSLog(@"不包含");
        }
    

    NSArray遍历:

        //定义一个数组
        NSArray *arr = @[@"one",@"two",@"three",@"four"];
        //1) 普通的方式,通过下标访问
        for(int i=0;i<arr,i++){
              NSLog(@"%@",arr[i]);
        }
        //2) 快速枚举法 for循环的增强形式
        for (NSString * str in arr) {
             NSLog(@"---> %@",str);
        }
    

    NSArray与字符串:

    • 把数组拼接成为字符串
      //定义一个数组
      NSArray *arr = @[@1,@2,@3,@4];
    
      //1)需求: 把数组中的元素用 "-" 连接起来
      //  [数组 componentsJoinedByString @"分隔符"];
      //在NSString中也可以用这个方法连接字符串,只需把arr替换成str,拆分字符串同理
      // 1-2-3-4
      NSString *str = [arr componentsJoinedByString:@"-"];
      NSLog(@"str = %@",str);
    
    • 把字符串拆分为数组
      //2) 给一个字符串,分割成一个数组
      // 400-800-12580   //取得 400    12580    800
      NSString *str2 = @"400-800-12580";
      NSArray *arr2 = [str2 componentsSeparatedByString:@"-"];
      NSLog(@"%@",[arr2 firstObject]);
      NSLog(@"%@",[arr2 lastObject]);
      NSLog(@"%@",arr2[1]);
    

    NSMutableArray基本方法:

    NSMutableArray除了继承了NSArray基本的方法,还增加了以下的指定初始化函数

    -(instancetype)initWithCapacity:(NSUInteger)numItems;
    
    • addObject
    //尾部追加一个元素  
    -(void)addObject:(id)anObject;  
    //尾部追加一个数组  
    -(void)addObjectsFromArray:(NSArray *)otherArray;
    
    • insertObject
    //在指定索引处插入一个元素,原来的元素后移  
    // index取值范围=[0, count],index=count时相当于addObject  
    -(void)insertObject:(id)anObject atIndex:(NSUInteger)index;  
    //在指定索引集合处插入一个数组元素,相当于批次insertObject:atIndex:  
    -(void)insertObjects:(NSArray *)objects atIndexes:(NSIndexSet*)indexes;
    
    • exchangeObject/replaceObject
      //交换对应索引位置的元素(索引必须有效)  
      -(void)exchangeObjectAtIndex:(NSUInteger)idx1 withObjectAtIndex:(NSUInteger)idx2;  
    
      //替换对应索引位置的元素(索引必须有效)  
      -(void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject;  
    
      //替换对应索引集合位置的元素,相当于批次replaceObjectAtIndex: withObject:  
    -(void)replaceObjectsAtIndexes:(NSIndexSet *)indexes withObjects:(NSArray*)objects;  
    
      //等效于replaceObjectAtIndex,支持中括号下标格式(array[index])赋值替换。  
      // index取值范围=[0, count],index=count时相当于addObject  
      -(void)setObject:(id)obj atIndexedSubscript:(NSUInteger)idx;  
    
      //等效于先removeAllObjects后addObjectsFromArray  
      -(void)setArray:(NSArray *)otherArray;
    
    • removeObject
    -(void)removeLastObject;  
    //删除对应索引位置/范围的元素(索引/范围必须有效)  
    -(void)removeObjectAtIndex:(NSUInteger)index;  
    -(void)removeObjectsAtIndexes:(NSIndexSet *)indexes;  
    -(void)removeObjectsInRange:(NSRange)range;  
    //有则删除  
    -(void)removeObject:(id)anObject;  
    -(void)removeObject:(id)anObject inRange:(NSRange)range;  
    -(void)removeObjectsInArray:(NSArray *)otherArray;  
    -(void)removeAllObjects;
    

    相关文章

      网友评论

        本文标题:NSArray和NSMutableArray基本用法

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