首页 > 代码库 > NSMutableArray

NSMutableArray

一、#pragma mark 创建NSMutableArray.

 

void arrayCreate() {

    

    NSMutableArray *array = [NSMutableArray arrayWithObject:@"1"];    

    //添加元素。

    [array addObject:@"2"];

    [array addObject:@"3"];

    //删除元素。

    [array removeObject:@"2"];

    NSLog(@"%@",array);

}

 

二、#pragma mark NSMutableArray内存管理。

 

void arrayMemory() {

    NSMutableArray *array = [[NSMutableArray alloc] init];

    Student *stu = [Student studentWithAge:10];

    Student *stu1 = [Student studentWithAge:20];    

    NSLog(@"init->stu:%zi",[stu retainCount]);    

    //添加元素的时候会对被添加的元素做一次retain操作。

    [array addObject:stu];

    [array addObject:stu1];    

    NSLog(@"add->stu:%zi",[stu retainCount]);    

    //对被删除的元素做一次release操作。

    [array removeObject:stu];   

    NSLog(@"remove->stu:%zi",[stu retainCount]);    

    //当数组被释放的时候,会对所有的元素都做一次release操作。    

    NSLog(@"%@",array);

    [array release];

}

 

三、#pragma mark NSMutableArray添加、删除、插入、替换元素操作。

 

void arrayOther () {

    NSMutableArray *mutableArray = [NSMutableArray arrayWithObjects:@"1",@"2",@"3", nil];

    NSArray *array = [NSArray arrayWithObjects:@"4",@"5", nil];    

    //将array添加到mutableArray中。

    [mutableArray addObjectsFromArray:array];    

    //在index为5的位置插入一个元素。

    [mutableArray insertObject:@"6" atIndex:5];    

    //删除最后一个元素。

    [mutableArray removeLastObject];    

    //删除所有的元素。

    //[mutableArray removeAllObjects];    

    //删除index位置的元素。

    [mutableArray removeObjectAtIndex:2];    

    //删除特定的元素。

    [mutableArray removeObject:@"4"];    

    //在range范围内查找特定的元素进行删除。

    NSRange range = NSMakeRange(0, 2);

    [mutableArray removeObject:@"1" inRange:range];    

    //删除rang范围内的所有元素。

    NSArray *array1 = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4",@"5", nil];

    [mutableArray addObjectsFromArray:array1];

    [mutableArray removeObjectsInRange:range];    

    //删除同时存在于otherArray和当前集合中的所有元素

    NSArray *otherArray = [NSArray arrayWithObjects:@"3",@"4", nil];

    [mutableArray removeObjectsInArray:otherArray];    

    //用anObject替换index位置对应的元素。

    [mutableArray replaceObjectAtIndex:0 withObject:@"a"];    

    //用objects中的元素分别替换indexes对应位置的元素。

    NSIndexSet *index = [NSIndexSet indexSetWithIndexesInRange:range];

    NSArray *array2 = [NSArray arrayWithObjects:@"b",@"c", nil];

    [mutableArray replaceObjectsAtIndexes:index withObjects:array2];

    NSLog(@"%@",mutableArray);

}

 

NSMutableArray