ボタンにランダムなテキストを表示することができたので、配列内のアイテムがほとんどの場合に繰り返されることに気付きました。そのため、「abc d」や「acd b」ではなく、「abb b」や「acb c」のようなものが得られます。for ループに、既に使用されている配列値のインデックスを除外して、何も繰り返さないようにするにはどうすればよいですか?
また、クイズの質問ごとに配列リストを作成する必要がないように、配列内のすべての値ではなく特定の値から選択するように for ループに指示するにはどうすればよいでしょうか? 配列に [abcdefg] がある場合と同様に、質問 1 で [abce] のみをランダムな順序で表示します。
現在のコードは次のようになります。
answerList = [[NSMutableArray alloc] initWithObjects:
"a", "b", "c", "d", "e", "f", "g", nil];
for (int j=0; j<answerList.count; j++)
{
int k = arc4random() % [answerList count];
[btnA setTitle:[answerList objectAtIndex:k] forState:UIControlStateNormal];
[answerList removeObjectAtIndex:k];
int l = arc4random() % [answerList count];
[btnB setTitle:[answerList objectAtIndex:l] forState:UIControlStateNormal];
[answerList removeObjectAtIndex:l];
int m = arc4random() % [answerList count];
[btnC setTitle:[answerList objectAtIndex:m] forState:UIControlStateNormal];
[answerList removeObjectAtIndex:m];
int n = arc4random() % [answerList count];
[btnD setTitle:[answerList objectAtIndex:n] forState:UIControlStateNormal];
[answerList removeObjectAtIndex:n]; }