NSArray和NSMutableArray基本用法

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;  
    //有则删除