错误使用<和>

时间:2014-11-22 03:10:26

标签: xcode swift

你好,我正在简单地猜测数字游戏,然后突然想出来了     无法调用'<'使用类型'的参数列表'(@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
    ...

感谢

2 个答案:

答案 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)