objective-c系列-NSMutableArray,objective-c
********************************************// 可變數組構造方法 // 下邊兩句的定義都是不可變的// 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);****************************************************************************************