zoukankan      html  css  js  c++  java
  • objective-c系列-NSMutableArray

    ********************************************
    // 可变数组构造方法
        //  下边两句的定义都是不可变的
    //    NSMutableArray *marray1 = [[ NSArray alloc]init];
    //    NSMutableArray * marray1 = @[@"xx",@"yy"];
        
        //默认数组没有元素
        NSMutableArray * marray1 = [[ NSMutableArray alloc]init];
        NSMutableArray * marray = [NSMutableArray array];
        NSMutableArray * marray2 = [[ NSMutableArray alloc]initWithArray:@[@"1",@"2"]];
        NSMutableArray * marray3 = [[NSMutableArray alloc]initWithObjects:@"one",@"two",@"three"nil];
        
        id objs[5] ={@"123",@"456",@"789",@"abc",@"def"};
        // objs 的类型为: id [5]
        // 因为objs是数组名,即首元素的地址,又因为首元素的类型为id
        //     所以:  objs的类型为: id *
        
        NSMutableArray * marray4 = [[NSMutableArray alloc]initWithObjects: objs count:3];
        NSLog(@"marray4: %@", marray4);
        
        //  开辟80个字节的动态内存,给memory
        //       memory指向了80个字节的合法内存
        id * memory = (__bridge id *)malloc(80);
        memory[0]=@"mem1";
        memory[1]=@"mem2";
        memory[2]=@"mem3";
        memory[3]=@"mem4";
        memory[4]=@"mem5";
        NSMutableArray * marray5 = [[ NSMutableArray alloc]initWithObjects:memory count:3];
        NSLog(@"marray5: %@", marray5);
     
        //构造一个可变数组,初始给它10个元素空间, 但没有元素
        NSMutableArray * marray6 = [[ NSMutableArray alloc]initWithCapacity:10];
        //注意: marray6还是一个空数组,即没有元素存在
        NSLog(@"marray6:%@", marray6);
    ********************************************
    //给数组添加元素
        //  add   insert
        NSMutableArray * array = [[ NSMutableArray alloc]init];
        //尾部追加一个元素
        [array addObject:@"theFirstObject"];
        NSLog(@"第一次调 addObject: array: %@",array);
        
        [array addObject:@"theSecondObject"];
        NSLog(@"第二次调 addObject: array: %@", array);
     
        //尾部拼接一个数组
        [array addObjectsFromArray:@[@"add1",@"add2"]];
        NSLog(@"第一次调 addObjectsFromArray: array: %@", array);
        
        //结果说明 addObject是往数组的尾部追加元素
        [array insertObject:@"theInsertObject" atIndex:1];
        NSLog(@"第一次调 insertObject: array: %@", array);
    ********************************************
    //删除数组中的元素
        NSMutableArray * array  = [[ NSMutableArray alloc]initWithArray:@[@"1",@"2",@"3",@"4",@"5",@"6",@"1",@"1" ]];
        NSLog(@"array: %@", array);
        // remove
        //删除这个对象在数组中的所有出现的地方
        [array removeObject:@"1"];
        NSLog(@"第一次调 removeObject: array: %@",array);
     
        //删除最后一个元素
        [array removeLastObject];
        //删除指下定标的元素
        [array removeObjectAtIndex:0];
        //删除所有的元素
        [array removeAllObjects];
    ********************************************
    //重置数组,替换数组的某个下标的元素
        NSMutableArray * array = [[ NSMutableArray alloc]initWithArray:@[@"abc",@"def",@"ghi"]];
        
        NSLog(@"原始数组: array: %@",array);
        NSArray * newArray = @[@"123",@"456",@"789"];
        [array replaceObjectsInRange:NSMakeRange(0, [array count]) withObjectsFromArray:newArray];
        NSLog(@"全部元素被替换后的数组: array: %@",array);
        
        [array replaceObjectAtIndex:1 withObject:@"[theFisrtReplaceObject]"];
        NSLog(@"替换某一个下标的元素:array: %@",array);
        NSLog(@"新替换后的元素为: %@", [array objectAtIndex:1]);
    ********************************************
    //数组对象的其它常用方法
        NSArray * array = @[@"one",@"two",@"three"];
        //获取数组的首元素
        id obj1 = [array firstObject];
        NSLog(@"obj1: %@", obj1);
        //获取数组的尾元素
        id obj2 = [array lastObject];
        NSLog(@"obj2: %@", obj2);
    ********************************************
    ********************************************
  • 相关阅读:
    web.xml中openEntityManagerInViewFilter的作用(转)
    JNDI解读(转)
    Java读取大文件的高效率实现
    快速入门react
    谈一谈我所了解的https
    漫谈JWT
    Java 中的几种线程池这么用才是对的
    用Vue来实现图片上传多种方式
    一个页面从输入URL到页面加载显示完成,这个过程都发生什么?
    “===”与“==”的区别
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/NSMutableArray.html
Copyright © 2011-2022 走看看