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

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

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

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


当前回答

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

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

其他回答

您可以尝试“Pod更新”和/或“颤振清理”

我也在xcode中设置了这个设置。

Objective-C界面设置如下:

在Swift 4模式下使用Swift 3 @objc推断已弃用?

使用func调用@objc

func call(){

foo()

}

@objc func foo() {

}

在@wisekiddo所说的之上,您还可以在项目中修改您的构建设置。通过将SWIFT_SWIFT3_OBJC_INFERENCE = default设置为SWIFT_SWIFT3_OBJC_INFERENCE = default;对于你的构建风格(即调试和发布),特别是如果你来自Xcode以外的其他环境

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

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

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