【发布时间】:2016-07-20 04:19:51
【问题描述】:
我对 Swift 很陌生,我只是想构建一些东西来测试水域。这与我之前的一个问题有关。我正在构建一些代码来从 UITextField 对象获取用户输入,并且基本上我试图弄清楚如何将 Int 转换为 UInt32,但我没有在 SO 上搜索或以其他方式真正有帮助。
这是我的代码 //这是我调用用户输入的地方。
var rangeInput: Int? {
get {
return Int(rangeInputTextField?.text ?? "")
}
//这是我创建一个范围的函数,并在该范围之外调用一个随机数
let viewController = ViewController()
var x = ViewController().rangeInput
let y = (Int?(x!))
var number = arc4random_uniform(Int(y!))//ERROR OCCURS HERE "Cannot convert value of type 'Int' to expected argument type 'UInt32'
//MARK: Class for random number
struct RandomNumber {
// numberRange to change the value for 1...X(user input)
//creates the list to be picked from. (pickRandom)
func numberRange(high: UInt32) ->Range<UInt32>{
if let high = UInt32?(0){
print("Invalid number")
} else { let high = Int(y!) + 1
}
let range = 1...high
return range
}
//pick random number from that list
let pickRandom = number
}
edit:转换的 UInt,在 cmets 中使用答案,但在展开选项时遇到问题。 我在强制解包选项方面做错了吗?
【问题讨论】:
-
UInt32(yourNumber) -
@zcui93 在哪里?我要把它改成 arc4random_uniform(UInt32(Int(y!))) 还是什么?
-
嗨@GabrielMSC,你可以这样做
let unsignedY = UInt32(x)然后let usignedRandomNumber = arc4random_uniform(unsignedY)最后let number = Int(unsignedRandomNumber) -
嗨@neteot,那太好了,我测试了它,它仍然给我一个错误,发现 nil,同时打开一个可选值,所以我不确定是否有一些代码我可能需要添加或如何做到这一点
标签: ios swift int range uint32