4

putNumberUsed という NSMutableArray があります。次のオブジェクト @"blah1,@"blah2",@"blah3",@"blah4" が含まれています。これらのオブジェクトをランダムにシャッフルしたいので、たとえば選択した場合:

 [putNumberUsed objectAtIndex:0] 

それは私に "blah1" 以外のものを与えるでしょう。どうすればこれを行うことができますか?これまでに使用したコードは次のとおりです。

NSMutableArray *putNumbersUsed = [[NSMutableArray alloc] arrayWithObjects:@"blah1",@"blah2",@"blah3",@"blah4",nil];
4

6 に答える 6

9

そのためのループを書くことができると思います。次のコードを確認してください。

for (int i = 0; i < putNumberUsed.count; i++) {
    int randomInt1 = arc4random() % [putNumberUsed count];
    int randomInt2 = arc4random() % [putNumberUsed count];
    [putNumberUsed exchangeObjectAtIndex:randomInt1 withObjectAtIndex:randomInt2];
}

これはあなたに役立つかもしれません。

于 2012-06-27T10:50:04.043 に答える
2

次のコード行を使用して、オブジェクトをシャッフルできます。

[putNumbersUsed exchangeObjectAtIndex:3 withObjectAtIndex:0];

これはあなたに役立つと思います。

于 2012-06-27T10:28:15.653 に答える
1

インデックス用の乱数を生成する

int randomInt = arc4random() % [putNumberUsed count];
[putNumberUsed objectAtIndex:randomInt];
于 2012-06-27T10:22:59.233 に答える
0

これを使って:

for (int i = 0; i < [putNumberUsed count]; i++) {
    int random = arc4random() % [putNumberUsed count]; 
    [putNumbersUsed exchangeObjectAtIndex:random withObjectAtIndex:i]; 
}
于 2012-06-27T10:51:15.680 に答える