Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 识别要传递到函数中的UITextField_Swift_Equality - Fatal编程技术网

Swift 识别要传递到函数中的UITextField

Swift 识别要传递到函数中的UITextField,swift,equality,Swift,Equality,我试图确定哪个UITextField正在被传递到委托函数textfielddidediting(\uuUi:UITextField)。我正在执行一个比较操作,但我不确定是使用==,isEqual(),还是完全使用其他方法 我想强调的是,我正在比较UITextFields本身,看看它们是否相同,而不是它们的文本 以下是我现在的代码: func textFieldDidEndEditing(_ textField: UITextField) { if textField == titleTe

我试图确定哪个UITextField正在被传递到委托函数
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:
,例如比较=对应于Swift中的
==