0

こんにちは私はずっと探していましたが、私の問題に対する答えを見つけることができないようです。私はプログラミング、特にObjective-Cの経験がほとんどありません。
私のアプリにはplist、特定の数の文字列を持つがあります。ユーザーがボタンをタップすると、プログラムはplist内の文字列の数をカウントし、その範囲内で乱数を作成し、その特定の数でplistの行を読み取ることになっています。plistに20個の文字列があり、アプリが数値5を生成した場合、アプリはplistの5番目の文字列を読み取ることになっています。

そのようなことをする方法はありますか、それともこれを達成するための別のより効率的な方法がありますか?どんな助けでも大歓迎です。ありがとう。

編集:私の.hファイルに私は持っています

NSMutableArray* myArray;
int plistCount;
int randomNumber; 
}
@property (nonatomic, retain) NSMutableArray* myArray;

そして私の.mファイルには

NSString *path = [[NSBundle mainBundle] pathForResource:@"myplist" ofType:@"plist"];
    NSMutableArray* tmpArray = [[NSMutableArray alloc] initWithContentsOfFile:path];
    self.myArray = tmpArray;
plistCount=[self.resorts count];
randomNumber=arc4random() % plistCount;

ここからどこへ行けばいいのかわからない。

4

1 に答える 1

0
NSString * randomString = self.myArray[arc4random_uniform(self.myArray.count)];

上記のコードは、からランダムな要素を選択していself.myArrayます。

arc4random_uniform0から引数(除外)までの数値を生成するためself.myArray.count、境界として使用すると、配列の有効なランダムインデックスを取得できます。

ノート

上記のコードが機能するためには、配列が空にならないことを明示的に確認する必要があり ます。これは、をarc4random_uniform(0)返す0ためです。したがって、空の配列の場合は、が生成されNSRangeExceptionます。

于 2012-12-17T02:05:24.917 に答える