誰かがビューをロードするたびに順序が混同されるように、NSMutableArray をシャッフルしようとしています。
私-(void)viewDidLoad
は次のコードを入れています(他のユーザーが提案したように):
NSMutableArray *shuffleTwo = [self.chosenTeamDict objectForKey:@"clubs"];
int random = arc4random() % [shuffleTwo count];
for (int i = 0; i < [shuffleTwo count]; i++) {
[shuffleTwo exchangeObjectAtIndex:random withObjectAtIndex:i];
}
NSLog(@"%@", shuffleTwo);
しかし、これを実行してページを実行しようとすると、次のエラーが発生します。
2012-07-09 18:42:16.126 Kit-Quiz[6505:907] (null)
libc++abi.dylib: terminate called throwing an exception
この配列をシャッフルする新しい方法、またはこのエラーを回避する方法について私にアドバイスできる人はいますか..!? 私は iOS 5 用にビルドしており、Xcode45-DP1 を使用しています。前もって感謝します!
(編集)
この方法も試しましたが、同じエラーが発生します。
NSMutableArray *shuffledArray = [[NSMutableArray alloc] init];
NSMutableArray *standardArray = [self.chosenTeamDict objectForKey:@"clubs"];
for(int s = 0; s < [standardArray count]; s++){
int random = arc4random() % s;
[shuffledArray addObject:[standardArray objectAtIndex:random]];
}
NSLog(@"%@", shuffledArray);