为了账号安全,请及时绑定邮箱和手机立即绑定

不建议在Swift 4模式下使用Swift 3 @objc推论吗?

不建议在Swift 4模式下使用Swift 3 @objc推论吗?

交互式爱情 2019-10-04 16:08:36
简要地说,在使用Xcode 9 Beta时,我遇到了以下警告:不建议在Swift 4模式下使用Swift 3 @objc推断。请解决已弃用的@objc推断警告,启用“使用已弃用的Swift 3 @objc推断”日志记录来测试您的代码,并禁用Swift 3 @objc推断。**经过研究,我仍然不知道如何解决该问题。我将不胜感激有关如何解决此问题的所有技巧以及对所发生情况的解释。我的目标是更好地理解我的代码正在发生的事情。
查看完整描述

3 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

通过将目标的“ Swift 3 @objc Inference”构建设置更改为“ Default”,我摆脱了此警告。


//img1.sycdn.imooc.com//5d96fe2100017d5913870544.jpg

从这篇文章:


在Swift 4之前,编译器自动将一些Swift声明提供给Objective-C。例如,如果从NSObject继承了一个子类,则编译器会为此类中的所有方法创建Objective-C入口点。该机制称为@objc推断。


在Swift 4中,不建议使用这种自动@objc推断,因为生成所有这些Objective-C入口点的成本很高。当“ Swift 3 @objc Inference”设置设置为“ On”时,它将允许旧代码起作用。但是,它将显示需要解决的弃用警告。建议“修复”这些警告并将设置切换为“默认”,这是新Swift项目的默认设置。


另请参阅此Swift提案。


查看完整回答
反对 回复 2019-10-04
  • 3 回答
  • 0 关注
  • 652 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信