#iOS#HeminWon

OC语言day08-07可变数组NSMutableArray

2016-07-31  本文已影响128人  liyuhong165

pragma mark 可变数组NSMutableArray

pragma mark 概念

/**
 可变数组 (NSMutableArray)
 
 1. 添加
    单个 (addObject)
    多个 (addObjectsFromArray)
 
 2.插入
    将对象 插入到那个位置 (insertObject:atIndex)
    插入 一组数据 , 指定数据需要插入的位置,和插入多少个  (insertObjects:atIndexes)
 
 3. 删除
   删除指定位置 (removeObjectAtIndex)
   删除所有    (removeAllObjects)
   删除最后一个  (removeLastObject)
   删除某个对象 (removeObject)

 4. 替换
    使用那个索引 替换成那个对象 (replaceObjectAtIndex:withObject)
    arr[index] = @"LYH";
 
 5. 获取
    获取 (objectAtIndex)
    arr[index]
 
 */

pragma mark 代码

#import <Foundation/Foundation.h>
#pragma mark 类

#pragma mark main函数
int main(int argc, const char * argv[])
{
#pragma 可变数组NSMutableArray
    
#warning 1.可变数组NSMutableArray
    // 创建一个空的数组
    NSMutableArray *arrM = [NSMutableArray array];
    
    // 1. 如何添加 单个 ()  多个
    [arrM addObject:@"1"];
//    NSLog(@"%@",arrM);

    // 将所有的元素 取出来 放到 arrM中
    // 并不是 将整个数组 作为一个元素 添加到arrM中
    [arrM addObjectsFromArray:@[@"lyh",@"lys"]];
    
    // 以下 是 将整个数组 作为一个元素 添加
//    [arrM addObject:@[@"lyh",@"lys"]];
    NSLog(@"%@",arrM);
    
    
    // 2. 如何插入
    // 将对象 插入到那个位置 (insertObject:atIndex)
    // 插入 一组数据 , 指定数据需要插入的位置,和插入多少个  (insertObjects:atIndexes)
    [arrM insertObject:@"hehe" atIndex:1];
    NSLog(@"%@",arrM);

    // location 从哪里开始插入 length 是插入多少个
    NSRange range = NSMakeRange(2, 2);
    NSIndexSet *set = [NSIndexSet indexSetWithIndexesInRange:range];
    // 插入 一组数据 , 指定数据需要插入的位置,和插入多少个
    [arrM insertObjects:@[@"A",@"C"] atIndexes:set];
    NSLog(@"%@",arrM);
    

    // 3. 如何删除
    //      删除指定位置 (removeObjectAtIndex)
    //      删除所有    (removeAllObjects)
    //      删除最后一个  (removeLastObject)
    //      删除某个对象 (removeObject)
    [arrM removeObjectAtIndex:0];
    NSLog(@"%@",arrM);

    [arrM removeLastObject];
    NSLog(@"%@",arrM);
    
    [arrM removeObject:@"A"];
    NSLog(@"%@",arrM);
    
    
    // 4. 如何替换
    
    //  使用那个索引 替换成那个对象 (replaceObjectAtIndex:withObject)
    [arrM replaceObjectAtIndex:1 withObject:@"GG"];
    NSLog(@"%@",arrM);

    // 快捷替换
    arrM[0] = @"LYH";
    NSLog(@"%@",arrM);
    
    // 5. 如何获取
    // 获取 (objectAtIndex) 方式1
    // arr[index]           方式2
    
    NSLog(@"%@",[arrM objectAtIndex:0]);
    NSLog(@"%@",arrM[1]);
    
    
#warning 2.注意点
    // 不能 通过@[] 来创建一个可变数组, 因为@[]创建出来的 是一个不可变的数组
    // 如果 把 一个不可变数组 当做成一个可变数组 来使用, 会引发一个运行时的错误
    NSMutableArray *arrM1 = @[@"1",@"2"];
    
    [arrM1 addObject:@"XXX"]; // 这里会崩溃
    
    
    return 0;
}


上一篇 下一篇

猜你喜欢

热点阅读