我正在尝试识别哪个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 ?? ""
}
}
答案 0 :(得分:1)
根据this response,==
检查两个指针是否指向同一个位置,因此是同一个对象。 isEqual()
比较两个对象的值。
您正在查看传入函数的UITextField是否指向内存中与titleTextField的变量声明相同的位置,因此您要使用==
。
编辑:Martin指出Swift中的==
与Objective C中的==
不同(在Swift中为===
)并且它与哪一个没有区别你用。谢谢!