我只想在运行操作系统早于的设备上执行代码块iOS8。我不能:
iOS8
if #available(iOS 8.0, *) == false { doFoo() }
我现在使用的解决方案是:
if #available(iOS 8.0, *) { } else { doFoo() }
,但感觉笨拙。还有另一种方法可以#available用Swift优雅地否定声明吗?
#available
#available语句周围没有逻辑。
实际上,编译器使用该语句来推断可以在其包含的范围内调用哪些方法,因此在运行时无法执行有条件地执行该块的操作。
可以使用逗号组合条件,如下所示
if #available(iOS 8.0, *), myNumber == 2 { // some code }