确定将哪个UITextField传递给函数

时间:2016-09-12 10:50:09

标签: swift equality

我正在尝试识别哪个UITextField被传递到委托函数textFieldDidEndEditing(_:UITextField)。我正在进行比较操作,但我不确定是否完全使用==isEqual()或其他内容。

我想强调的是,我正在比较UITextFields本身,看它们是否相同而他们的文本。

以下是我现在拥有的代码:

func textFieldDidEndEditing(_ textField: UITextField) {
    if textField == titleTextField {
        self.poll?.titleText = textField.text ?? ""
    }
    else {
        self.poll?.allOptions[textField.tag].text = textField.text ?? ""
    }
}

1 个答案:

答案 0 :(得分:1)

根据this response==检查两个指针​​是否指向同一个位置,因此是同一个对象。 isEqual()比较两个对象的值。

您正在查看传入函数的UITextField是否指向内存中与titleTextField的变量声明相同的位置,因此您要使用==

编辑:Martin指出Swift中的==与Objective C中的==不同(在Swift中为===)并且它与哪一个没有区别你用。谢谢!