·您现在的位置: 江北区云翼计算机软件开发服务部 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> objective-c系列-NSMutableArray

objective-c系列-NSMutableArray

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23
********************************************
// 可变数组构造方法
    //  下边两句的定义都是不可变的
//    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);
********************************************
********************************************