【问题标题】:Generating a random number under super.ViewDidLoadsuper.ViewDidLoad下生成随机数
【发布时间】:2016-07-08 05:48:50
【问题描述】:

我正在为学校的一个项目制作“猜数字”游戏,我希望我的应用程序生成一个介于 1-10 之间的随机数,然后让我在我的按钮下使用它,该按钮允许用户通过将他们的猜测输入文本字段。我已经设法做到了其中的一些,我的随机数生成器目前位于我的“猜测”按钮下,这意味着每次他们按下按钮时,数字都会改变。我的解决方法是在 super.viewDidLoad 下生成一个数字,然后在按钮下使用它来完成剩下的工作,但我不知道该怎么做。

【问题讨论】:

  • 请贴一些代码
  • 我猜你的意思只是 'viewDidLoad',除了你有一个复杂的 ViewController 结构和继承
  • stackoverflow.com/questions/5601953/… 这是 Obj C 版本,我认为你可以将其转换为 swift
  • 他不想知道如何随机生成数字,他想知道何时以及如何初始化它们。
  • 是的,我知道如何生成随机数,但我不想让它在我的按钮下生成,我只想让它在程序运行时立即生成数字。

标签: ios xcode swift


【解决方案1】:

如果我对您的理解正确,您希望数字只生成一次,而不是每次按下。

所以你可能想要这样的东西:

var randomNumber: Int

override func viewDidLoad() {
    super.viewDidLoad()

    //Initialization
    generateRandomNumber()
}

func generateRandomNumber() {
    randomNumber = Int(arc4random_uniform(9)) + 1
}

randomNumber 是一个实例变量,因此您可以在所有方法中访问它,例如检查用户是否猜对了。

【讨论】:

  • 是的,你确实理解我的意思,谢谢我试试看!
  • 只是一个问题。在“randomNumber =”之后我要放 arc4random 吗?
  • 是的,或者任何你已经用来生成随机数的东西。从您的问题中,我了解到随机算法已经有效。只需将其从“按下按钮”方法移至此处即可。
  • 好的,我正在使用'Double(arc4random() % 11)',但是当我输入它时显示“无法将'Double'类型的值分配给'Int'”
  • 嗯,Double 是与 Int 不同的数据类型。 Double 是浮点数,对于猜谜游戏没有多大意义,因为没有人想猜 4.5612。 Int 只是自然数,所以 1、2、3、4... 等等
【解决方案2】:

使用标准库函数获取高质量随机数:arc4random()arc4random_uniform(),就像在 Objective-C 中一样。

它们位于 Darwin 模块中,因此如果您尚未导入 AppKit、UIKit 或 Foundation,则需要 import Darwin

【讨论】:

  • 谢谢,但我对导入 Darwin 部分有点困惑?
  • 如果您还没有导入 AppKit、UIKit 或 Foundation。那么只有你必须导入绘图
  • 我可能听起来很愚蠢哈哈,但我不知道该怎么做。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-01-03
  • 2011-10-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多