swift – 二进制运算符’===’不能应用于类型“Any?”的操作数和“UIBarButtonItem!”

前端之家收集整理的这篇文章主要介绍了swift – 二进制运算符’===’不能应用于类型“Any?”的操作数和“UIBarButtonItem!”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
以下代码用于在swift 2.2中编译,不再是swift 3.0.我们如何解决这个问题?

Error: Binary operator ‘===’ cannot be applied to operands of type ‘Any?’ and ‘UIBarButtonItem!’

override func prepare(for segue: UIStoryboardSegue,sender: Any?) {
    if sender === saveButton { // Error!
        // ... 
    } else if sender === closeButton { // Error!
        // ...
    }
}
正如错误信息所说.在Swift 3中,Objecitve-C id导入为Any,您不能调用任何包含===的任何操作,而不需要显式转换.

尝试这个:

if sender as AnyObject? === saveButton {

(与其他发件人比较一样)

并记住,在Swift 3中,随着AnyObject已经成为最危险的操作之一,在其他情况下不应该使用AnyObject.

原文链接:https://www.f2er.com/swift/319841.html

猜你在找的Swift相关文章