if(inputField == nil || numbersLabel == nil || inputField!.text! < 4 || numbersLabel!.text! < 4)
当我要运行应用程序时,显示无法找到此||
提供的参数的重载。
答案 0 :(得分:2)
正如Andrea指出的那样,问题是你要将字符串(text
)与整数(4
)进行比较,并且需要将text
转换为int。
但是还可以进行另一项优化 - 你正在检查inputField
是否为非零,然后强制展开它。但这不是必需的 - <
是为选项定义的,因为“nil
小于除了另一个nil
之外的所有其他内容,否则比较非nil
值”。因此,您只需编写x == nil || x! < 4
而不是x < 4
。
因此,您可以将if
声明写为:
// Swift 1.2:
if inputField?.text?.toInt() < 4 || numbersLabel?.text?.toInt() < 4 {
// Swift 2.0:
if inputField?.text.flatMap({Int($0)}) < 4 || numbersLabel?.text.flatMap({Int($0)}) < 4 {
答案 1 :(得分:1)
错误可能在这里:
inputField!.text! < 4
有一个运营商面对String
vs Int
并且没有。您必须转换右侧或左侧的其中一个值以匹配该类型。
试试这个:
inputField!.text!.toInt() < 4
或
Int(inputField!.text!) < 4