0

初めての iOS アプリを作成していますが、助けが必要です。仕組みは次のとおりです。

ユーザーがテキストフィールドに単語を入力し、ボタンを押すと、ラベルは次のようになります [Users word] [Randomly picked word]

したがって、ランダムな単語で配列を作成し、ボタンが押されたときにそれらをランダム化して、ユーザーがテキストフィールドに入力した単語の後に多くの中からランダムな単語を表示する必要があると思います。

しかし、それはどのように機能するはずですか?これが私が考えていたことです:

これをランダム化します(方法はわかりません):

NSArray *words = [NSArray arrayWithObjects: @"Blue", @"Green", @"Red", nil ];

テキストフィールドからテキストを表示するためのコードは次のとおりです。

NSString *labeltext = [NSString stringWithFormat:@"%@", [textField text]];

置くlabel.text = labeltext;と、ユーザーが入力した単語が表示されますが、「配列からランダムな単語を表示する」部分で立ち往生しています。

どんな助けでも大歓迎です!

4

2 に答える 2

3
    NSArray *words = [NSArray arrayWithObjects: @"Blue", @"Green", @"Red", nil ];
    NSString *str=[words objectAtIndex:arc4random()%[words count]];
    // using arc4random(int) will give you a random number between 0 and int.
    // in your case, you can get a string at a random index from your words array 
于 2012-05-13T18:19:59.353 に答える
0

OPへ。ランダムな回答を繰り返さないようにするには、View Controller の viewDidLoad で配列をインスタンス変数として設定します。また、remainingWords プロパティを作成します。

@property (非アトミック、保持) NSMutableArray *remainingWords;

viewDidLoad コードは次のようになります。

-(void) viewDidLoad;
{
  //Create your original array of words.
  self.words = [NSArray arrayWithObjects: @"Blue", @"Green", @"Red", nil ];

  //Create a mutable copy so you can remove words after choosing them.
  self.remainingWords = [self.words mutableCopy];
}

次に、次のようなメソッドを記述して、配列から一意の単語を取得できます。

- (NSString *) randomWord;
{
  //This code will reset the array and start over fetching another set of unique words.
  if ([remainingWords count] == 0)
    self.remainingWords = [self.words MutableCopy];

  //alternately use this code:
  if ([remainingWords count] == 0)
    return @""; //No more words; return a blank.
  NSUInteger index = arc4random_uniform([[remainingWords count])
  NSString *result = [[[remainingWords index] retain] autorelease];
  [remainingWords removeObjectAtindex: index]; //remove the word from the array.
}
于 2012-05-13T19:58:43.290 に答える