『Objective-Cプログラミング』17.NSMutableArray
2850 ワード
NSMutableArray
おすすめ読書 iOS実録12:NSMutableArray使用中に無視された問題 NSMutableArrayは可変配列であり、配列内の記憶領域は動的に変更可能であり、ポインタを追加、削除、または並べ替えることができる. NSMutableArrayはNSArrayに継承されており、NSArrayの方法はいずれも使用可能である.
配列の作成
addObject:要素の追加
count:取得配列要素個数
配列mArray 2のすべての要素をmArray 1に追加
要素を挿入する位置を指定
要素の置換
インデックス0とインデックス3の要素は、ソートに使用できます.
例:取得したNSMutableArrayタイプのデータは、UItableViewに逆順序で表示する必要があります.これまでは、インデックスに手足を動かす方法でした:
要素の削除
ツールバーの
指定されたソート記述子配列を使用して、受信者をソートします.
例:
ソート前:BMITime[5045:651300]employees:(「」、「」、「」、「」、「」)
結果:
BMITime[5010:648085] employees: ( "", "", "", "", "")
おすすめ読書
配列の作成
Person *p1 = [[Person alloc] init];
Person *p2 = [[Person alloc] init];
Person *p3 = [[Person alloc] init];
//1.
NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithObjects:p1,p2,p3, nil];
//2. ,
NSMutableArray *mArray2 = [[NSMutableArray alloc] init];
//
NSMutableArray *mArray21 = [NSMutableArray array];
//3. , 3 , 3 , 。
NSMutableArray *mArray1 = [[NSMutableArray alloc] initWithCapacity:3];
addObject:要素の追加
[mArray1 addObject:p1];
count:取得配列要素個数
NSLog(@"%ld",[mArray1 count]);
配列mArray 2のすべての要素をmArray 1に追加
[mArray1 addObjectsFromArray:mArray2];
要素を挿入する位置を指定
[mArray1 insertObject:@"hello" atIndex:0];
要素の置換
[mArray1 replaceObjectAtIndex:0 withObject:@" "];
インデックス0とインデックス3の要素は、ソートに使用できます.
[mArray1 exchangeObjectAtIndex:0 withObjectAtIndex:3];
例:取得したNSMutableArrayタイプのデータは、UItableViewに逆順序で表示する必要があります.これまでは、インデックスに手足を動かす方法でした:
NSUInteger index = self.dateSourceArray.count - indexPath.row - 1;
、欠点は、tableView:cellForRowAtIndexPath:
とtableView:didSelectRowAtIndexPath:
の両方で逆インデックス値を取得してからデータを取得することです.YYYYitのソースコードの中の方法を参考にして、直接データソースの上で処理します:[self.dateSourceArray reverse];
// , YYCategories
- (void)reverse {
NSUInteger count = self.count;
int mid = floor(count / 2.0);
for (NSUInteger i = 0; i < mid; i++) {
[self exchangeObjectAtIndex:i withObjectAtIndex:(count - (i + 1))];
}
}
要素の削除
//1>
[mArray1 removeObjectAtIndex:0];
//2>
[mArray1 removeObject:@“hello”];
//3>
[mArray1 removeLastObject];
//4>
[mArray1 removeAllObjects];
ツールバーの
指定されたソート記述子配列を使用して、受信者をソートします.
- (void)sortUsingDescriptors:(NSArray *)sortDescriptors;
例:
ソート前:BMITime[5045:651300]employees:(「」、「」、「」、「」、「」)
// valueOfAssets
NSSortDescriptor *voa = [NSSortDescriptor sortDescriptorWithKey:@"valueOfAssets" ascending:YES];
// valueOfAssets , employeeID
NSSortDescriptor *eid = [NSSortDescriptor sortDescriptorWithKey:@"employeeID" ascending:YES];
[employees sortUsingDescriptors:@[voa,eid]];
結果:
BMITime[5010:648085] employees: ( "", "", "", "", "")