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。要使随机答案不重复,请将您的数组设置为视图控制器的 viewDidLoad 中的实例变量。还要创建一个属性剩余单词:

@property (nonatomic, 保留) 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 回答