0

配列オブジェクトを異なる10個のラベルで同時に表示したいと思います。それらは毎回ランダムに整列する必要があります。どうやってやるの?

私はランダムな部分を行いました:

srandom(time(NULL));
NSUInteger arr = [myarray count];
for (NSUInteger i = 0; i < arr; ++i) {
    int nElements = arr - i;
    int n = (random() % nElements) + i;
    [myarray exchangeObjectAtIndex: i withObjectAtIndex:n];
}

しかし、以下のコードを10の異なるラベルに使用したい場合、配列オブジェクトが繰り返され、2つまたは3つの異なるラベルが同じ値を持つことができます。どうすればそれらを変えることができますか?

myLabel.text = [NSString stringWithFormat:@"%@", [[arr objectAtIndex:(random()%9)+1]intValue];

ありがとう

4

1 に答える 1

0

random()メソッドを使用してオブジェクトを配列にランダム化するため、randomeメソッドのようにラベルにデータを表示するためにrandom()を使用する必要はありません。返されるデータの一部は繰り返し返される可能性があるため、random()を使用するだけです。データをランダム化し、単純なforループを使用してラベルに連続して表示します。

于 2012-07-05T11:35:14.693 に答える