为啥 Xcode 会为选择器添加自动完成方法?

Posted

技术标签:

【中文标题】为啥 Xcode 会为选择器添加自动完成方法?【英文标题】:Why does Xcode line-out autocomplete methods for selector?为什么 Xcode 会为选择器添加自动完成方法? 【发布时间】:2020-06-01 16:41:18 【问题描述】:

自从我升级到最新的 Xcode 后,selector 对象的自动补全(删除线)方法。我不知道这是 Xcode 的错误还是我不知道有一些新的语法更改。如果您将其插入您的 Playground 并删除 #selector(tapHandler(_:)) 中的方法并重新输入它,自动完成是否会排除 tapHandler(_:) 建议?

class Mango 
    func tap() 
        let tap = UITapGestureRecognizer(target: self, action: #selector(tapHandler(_:)))
    

    @objc func tapHandler(_ sender: UITapGestureRecognizer) 

    

【问题讨论】:

我会说这是一个错误——尤其是因为您仍然可以选择被划掉的tapHandler,然后代码就会编译并正确运行。 很好地发现了@acidgate——同样的事情发生在我身上。即使你导入 UIKit。 【参考方案1】:

不要输入 tapH 并要求自动完成,而是输入 self.tapH 并要求自动完成。问题消失了。

所以,是的,我宁愿认为这是一个错误(除非 Swift 发生了变化,因此您不能在方法引用中省略该类),但也有一个简单的解决方法。

【讨论】:

以上是关于为啥 Xcode 会为选择器添加自动完成方法?的主要内容,如果未能解决你的问题,请参考以下文章

当我使用自动布局移动视图时,为啥 XCode 5 没有在情节提要中添加约束

为啥 Xcode 会为我的模型类的布尔属性生成 NSNumber 属性?

有没有办法将 Xcode 自动配置文件选择器配置到某些团队配置文件?

如何在 xcode 自动布局中使对象自动调整大小?

为啥自动导入会为 PhpStorm/WebStorm 中的根节点模块生成相对路径

为啥自动布局在 xcode 7.2 中不再起作用?