Swift 识别要传递到函数中的UITextField
我试图确定哪个UITextField正在被传递到委托函数Swift 识别要传递到函数中的UITextField,swift,equality,Swift,Equality,我试图确定哪个UITextField正在被传递到委托函数textfielddidediting(\uuUi:UITextField)。我正在执行一个比较操作,但我不确定是使用==,isEqual(),还是完全使用其他方法 我想强调的是,我正在比较UITextFields本身,看看它们是否相同,而不是它们的文本 以下是我现在的代码: func textFieldDidEndEditing(_ textField: UITextField) { if textField == titleTe
textfielddidediting(\uuUi:UITextField)
。我正在执行一个比较操作,但我不确定是使用==
,isEqual()
,还是完全使用其他方法
我想强调的是,我正在比较UITextFields本身,看看它们是否相同,而不是它们的文本
以下是我现在的代码:
func textFieldDidEndEditing(_ textField: UITextField) {
if textField == titleTextField {
self.poll?.titleText = textField.text ?? ""
}
else {
self.poll?.allOptions[textField.tag].text = textField.text ?? ""
}
}
根据,==
检查两个指针是否指向同一位置,因此是否为同一对象isEqual()
比较两个对象的值
您正在查看传递到函数中的UITextField是否指向与titleTextField的变量声明相同的内存位置,因此需要使用==
编辑:马丁指出,Swift中的
=
与目标C中的=
不一样(即Swift中的==
),使用哪一个没有区别。谢谢大家! 您的链接答案指的是Objective-C。Swift中的==
和Objective-C中的=
不是一回事。但是(除非您为UITextField类重写isEqual
),它实际上对您使用的内容没有影响。NSObject
子类的===
的默认实现调用isEqual:
,例如比较==
。