如何通过按钮发送随机值?

时间:2013-10-11 15:28:46

标签: ios button random int modulus

我目前正在编写一个程序,该程序生成的answer值介于1和100之间:

int answer = 0;
answer = arc4random() % 100 + 1;

首先让用户猜测屏幕上字段中的值。然后,该脚本将运行一个简单的循环,以确定它们输入的值是否与随机answer值匹配。

此时,我有一个初始屏幕,询问用户的猜测。他们输入一个数字并单击按钮以提交值。问题是,如果他们没有从第一个条目中猜出answer值,则会重新生成答案值,并在每次点击按钮时应用到新的随机值。

我的问题是如何在视图开始时生成随机值,然后保持直到用户正确猜到该值。

我的尝试是重新安置:

int answer = 0;
answer = arc4random() % 100 + 1;

到页面的开头,但是当我稍后在页面上调用该方法时,我会收到错误,指出answer缺少标识符。感谢您的帮助,非常感谢。

1 个答案:

答案 0 :(得分:0)

我认为问题是因为您将随机生成片段放入IBAction中,正如您在评论中所述:

  

这是采用字段

中提交的值的方法

这意味着每次用户点击按钮时都会触发guessNow:sender内的代码,这意味着每次用户提交一个没有意义的猜测时都会生成一个随机数。

//this is the method which takes the value submitted in the field and changes the label display after the user clicks the guess now button

- (IBAction)guessNow:(id)sender {

//set the random siri guess value between 1 and 100

int answer = 0;
answer = arc4random() % 100 + 1;

self.usersGuess = self.guessNumberField.text;

你应该将该代码块放在viewDidLoad()中,并将属性_answer添加到.h

这是一个快速的解决方案,我没有在XCode上写这个,所以可能有语法错误

在.h中

,添加

@property (strong) int _answer;
在.m中

,将其从guessNow:sender

中删除
int answer = 0;
answer = arc4random() % 100 + 1;

并将其添加到viewDidLoad()

answer = arc4random() % 100 + 1;

另外你可能想要添加另一个按钮来重置随机数,所以我想在你的.m中将随机数生成与这样的私有方法隔离开来

- (void)generateRandomNumber
{
    self.answer = arc4random() % 100 + 1;
}

这样,您可以在viewDidLoad()中使用此方法生成初始随机数并将其用于重置按钮(如果有)

希望它有所帮助。

相关问题