Snail—OC學習之可變陣列NSMutableArray
阿新 • • 發佈:2019-01-02
可變陣列NSMutableArray 繼承於 NSArray NSArray的所有方法都適用於可變陣列
下面是可變陣列的一些初始化方法
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { //可變陣列繼承於不可變陣列 //空的可變陣列 NSMutableArray * array = [[NSMutableArray alloc] init]; //傳入0 就是新建了一個空陣列 NSMutableArray * array2 = [[NSMutableArray alloc] initWithCapacity:0]; //以一個數組來建立新的陣列 NSMutableArray * array3 = [[NSMutableArray alloc] initWithArray:array]; //初始化新增物件 nil是佔位的 NSMutableArray * array4 = [[NSMutableArray alloc] initWithObjects:@"dsa",@"sd",nil]; //簡易初始化方法只適用於不可變陣列 //NSMutableArray * array5 = @[@"dsa",@"sd"]; //類方法形式建立陣列 NSMutableArray * arr1 = [NSMutableArray array]; NSMutableArray * arr2 = [NSMutableArray arrayWithArray:array]; //一個長度為0的可變陣列 NSMutableArray * arr3 = [NSMutableArray arrayWithCapacity:0]; NSMutableArray * arr4 = [NSMutableArray arrayWithObjects:@"sda",@"asd",nil]; } return 0; }
跟可變陣列相似的原理,可變陣列可以對其裡面的元素進行相應的方法
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableArray * array = [[NSMutableArray alloc] init]; //增加一個元素 [array addObject:@"one1"]; NSArray * array2 = @[@"sda",@"sad",@"one"]; //新增多個元素 [array addObjectsFromArray:array2]; //刪除所有跟引數相同的物件 [array removeObject:@"one"]; //刪除指定位置的元素 [array removeObjectAtIndex:0]; //刪除所有元素 //如果是空陣列 呼叫下面這個方法資料會報錯 [array removeAllObjects]; //刪除最後一個元素,但是空陣列不會報錯 [array removeLastObject]; //刪除多個元素 [array removeObjectsInArray:array2]; //從下標開始,刪除幾個元素 從下標0開始刪除 要刪除兩個 NSRange range = NSMakeRange(0, 2); [array removeObjectsInRange:range]; } return 0; }
可變陣列的一些關於元素的方法
#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableArray * array = [[NSMutableArray alloc] init]; //重置陣列 引數可以是任何陣列 [array setArray:@[@"Snail",@"Daodao",@"Jian"]]; //替換 將下標為1的元素替換成@"jianjian" [array replaceObjectAtIndex:1 withObject:@"Jian"]; //交換 將下標為1的元素 跟下標為2的元素交換 [array exchangeObjectAtIndex:1 withObjectAtIndex:2]; //插入 下標2將會新插入一個元素 其他元素順序往後移動 [array insertObject:@"j" atIndex:2]; } return 0; }