简单地说,在使用Xcode 9 Beta时,我遇到了以下警告:

不建议在Swift 4模式中使用Swift 3 @objc推断。请解决已弃用的@objc推断警告,测试代码时启用“使用已弃用的Swift 3 @objc推断”日志记录,并禁用Swift 3 @objc推断。**

经过一番研究,我仍然不知道如何解决这个问题。 我将非常感谢任何关于如何解决这个问题的提示,以及对正在发生的事情的解释。

我的目标是更好地理解我的代码发生了什么。


当前回答

我有这个警告“Swift 3 @objc Inference”=“默认”设置。然后我意识到这是为项目设置的,而不是为目标设置的。所以,确保你在目标中有“默认”设置,以消除警告。

其他回答

Swift 3 @objc推断 不建议在Swift 4模式中使用Swift 3 @objc推断。请解决已弃用的@objc推断警告,测试您的代码,启用“使用已弃用的Swift 3 @objc推断”日志记录,然后通过将“Swift 3 @objc推断”构建设置更改为“默认”的“XMLParsingURL”目标来禁用推断。

到了

第一步是构建设置 搜索到构建设置推理 change swift 3 @objc Inference默认值

在这里输入图像描述

你可以简单地传递到“default”而不是“ON”。似乎更符合苹果的逻辑。

(但所有其他关于@obj使用的评论仍然有效。)

Migrator不能识别所有需要@objc的函数 推断的Objective-C坦克标记为已弃用,以帮助您找到它们 •构建关于已弃用方法的警告 •运行过时的坦克时控制台消息

我是一个偶尔的iOS开发者(很快就会更多),但我仍然无法找到其他答案所引导的设置(因为我没有答案所显示的钥匙链项目),所以现在我找到了它,我想我可以添加这个快照,突出显示你需要点击并找到的位置。

从左上方开始 选择项目文件夹图标 选择项目文件夹图标下面的主项目名称。 在右侧选择Build Settings。 在TARGETS下面选择您的项目。 向下滚动(或在搜索中搜索单词推理) 文本框)

你只需要运行一个测试,等待完成,之后进入构建设置,搜索到构建设置推理, 将swift 3 @objc Inference更改为(默认)。我就是这么做的,而且效果很好。