你好,我正在简单地猜测数字游戏,然后突然想出来了 无法调用'<'使用类型'的参数列表'(@lvalue UITextField!,@ lvalue UInt32) 这是我的整个剧本 导入UIKit
class ViewController: UIViewController {
@IBOutlet weak var guess: UITextField!
@IBOutlet weak var text: UILabel!
@IBAction func button(sender: AnyObject) {
if guess > random {
println(text = "your number was too high. Try again")
}
if guess < random {
println(text = "your number was too low. Try again")
}
}
var random = arc4random()%100
...
感谢
答案 0 :(得分:0)
您已将“guess
”定义为UITextField,它的类型肯定与“random
”不同。
您需要告诉编译器如何将其转换为整数。
类似的东西:
let guessInteger = guess.text.toInt()
然后:
if guessInteger > random {
println("\(guess.text) was too high. Try again")
}
答案 1 :(得分:0)
您必须使用guess
方法将toInt()
文本字段中包含的字符串转换为整数,如果字符串无法转换为有效整数,则返回可选项
我会使用可选绑定来进行转换,并为变量分配一个有效值:
@IBAction func button(sender: AnyObject) {
if let guessInt = guess.text.toInt() {
if guessInt > random {
println("your number was too high. Try again")
}
if guessInt < random {
println("your number was too low. Try again")
}
}
}
然而,由于toInt
会返回Int
,而arc4random
会返回UInt
,因此单独进行此更改无效 - 因为swift并非隐含数据类型之间的转换,需要显式转换为Int
:
var random = Int(arc4random()%100)