我正在开发一个项目,在Xcode 7.2上使用了一些,在7.3上使用了一些项目(包括我自己)。我们不想强迫每个人升级到7.3(大多数人还必须更新他们的操作系统,我们将在发布日期关闭)。
如果我按照Xcode的建议使用#selector()
来获取新语法,那么运行7.2的任何人都无法编译项目,因为它们会出错。使用Selector("…")
允许项目在所有版本上进行编译,但它会创建一个警告,我很乐意压制它(在每个人升级后,它旁边有一个TODO可以删除)。
有没有办法压制这个警告,或者我现在应该忍住它作为快速升级的代价?
更新:在相关功能之前添加@objc
原始警告更改为Use '#selector' instead of explicitly constructing a 'Selector'
,并且愿意为我做出更改,使代码取消可在Xcode 7.2或更早版本上编译。
由于问题不是已弃用的方法,因此在这种情况下,现有的两个答案都不起作用(我会使用@avaliable
选项继续获取有关任何其他已弃用方法的警告,并根据具体情况做出决策虽然每个)。
答案 0 :(得分:0)
有一种解决方法:
@available(iOS, deprecated=10.0)
func _Selector(str: String) -> Selector {
return Selector(str)
}
但是你必须在你的代码中使用_Selector而不是Selector,而且我不确定Apple是否同意这一点,所以在提交AppStore之前,我建议删除@available(iOS, deprecated=10.0)
。
使用@available
的信用转到Daniel Thorpe获取答案here
答案 1 :(得分:0)
这不起作用吗? 在您的目标构建设置:全部 Apple LLVM警告 - 不推荐使用的功能 - > NO