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);
    ********************************************
    ********************************************
  • 相关阅读:
    hdoj2187:悼念512汶川大地震遇难同胞 (贪心)
    2.0其它之Transform详解,以及UIElement和FrameworkElement的常用属性
    2.0外观之样式, 模板, 视觉状态和视觉状态管理器
    2.0图形之Ellipse, Line, Path, Polygon, Polyline, Rectangle
    2.0控件之ListBox, MediaElement, MultiScaleImage, PasswordBox, ProgressBar, RadioButton
    2.0画笔之SolidColorBrush, ImageBrush, VideoBrush, LinearGradientBrush, RadialGradientBrush
    2.0图形之基类System.Windows.Shapes.Shape
    2.0交互之鼠标事件和键盘事件
    2.0控件之ScrollViewer, Slider, StackPanel, TabControl, TextBlock, TextBox, ToggleButton
    2.0交互之InkPresenter(涂鸦板)
  • 原文地址:https://www.cnblogs.com/hyuganatsu/p/NSMutableArray.html
Copyright © 2011-2022 走看看