8

私は持っていNSArrayます。その配列内に値があります。

NSArray *testArray = [NSArray arrayWithObjects:@"Test 1", @"Test 2", @"Test 3", @"Test 4", @"Test 5", nil];
NSLog(@"%@", testArray);

結果は次のようになります。

(
"Test 1",
"Test 2",
"Test 3",
"Test 4",
"Test 5"
)

今、私はこのような結果が欲しい:

(
"Test 3",
"Test 5",
"Test 1",
"Test 2",
"Test 4"
)

アレイを再初期化せずにそれを行う方法はありますか? この配列の値を入れ替えることはできますか?

4

2 に答える 2

8

NSMutableArrayを使用して 2 つのオブジェクトを交換します。

- exchangeObjectAtIndex:withObjectAtIndex:

これは、指定されたインデックス (idx1 と idx2) で配列内のオブジェクトを交換します。

idx1
インデックス idx2 のオブジェクトを置き換えるオブジェクトのインデックス。

idx2
インデックス idx1 のオブジェクトを置き換えるオブジェクトのインデックス。

迅速

func exchangeObjectAtIndex(_ idx1: Int,
         withObjectAtIndex idx2: Int)

OBJECTIVE -C NSMutableArray を使用する

  - (void)exchangeObjectAtIndex:(NSUInteger)idx1
                withObjectAtIndex:(NSUInteger)idx2

NSMutableArray の要素の交換

于 2015-05-08T11:13:47.840 に答える
7

配列は のインスタンスである必要があります。NSMutableArrayそれ以外の場合、書き込みメソッドは許可されません (NSArray読み取り専用です) 。

次の方法を使用します。

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject

replaces オブジェクトを格納するための一時ストレージが必要になります。

id tempObj = [testArray objectAtIndex:index];
[testArray replaceObjectAtIndex:index withObject:[testArray objectAtIndex:otherIndex]];
[testArray replaceObjectAtIndex:otherIndex withObject:tempObj];
于 2013-03-04T11:28:14.000 に答える