Swift 为较低的iOS版本执行函数

Swift 为较低的iOS版本执行函数,swift,Swift,是否有一种方法可以仅对较低的iOS版本执行函数。 我的意思是,对于比特定版本更大的iOS版本,我们可以始终使用可用属性执行;但是有没有其他方法可以反过来呢?很简单。您可以使用以下选项: 如果#可用(iOS 10,*){}其他{ 打印(“仅适用于iOS 10以下版本的代码”) } 编写if语句,然后在else语句中捕获所需内容,这真的很烦人。然而,您可以定义全局函数来在一个地方处理所有情况,这也有其自身的问题。永远不要用变量来调用它!始终使用硬编码字符串版本号检查iOS版本。如果您不小心检查了未处

是否有一种方法可以仅对较低的iOS版本执行函数。
我的意思是,对于比特定版本更大的iOS版本,我们可以始终使用可用属性执行;但是有没有其他方法可以反过来呢?

很简单。您可以使用以下选项:

如果#可用(iOS 10,*){}其他{
打印(“仅适用于iOS 10以下版本的代码”)
}

编写if语句,然后在else语句中捕获所需内容,这真的很烦人。然而,您可以定义全局函数来在一个地方处理所有情况,这也有其自身的问题。永远不要用变量来调用它!始终使用硬编码字符串版本号检查iOS版本。如果您不小心检查了未处理的版本,只需插入并继续fatalError()将帮助您

func available(version: String) -> Bool {
switch version {
case "13.5":
    if #available(iOS 13.5, *) { return true }
case "12":
    if #available(iOS 12, *) { return true }
default:
    fatalError("iOS \(version) is not handled. Insert:\n case \"\(version)\": \n if #available(iOS \(version), *) { return true }")
}

return false }
用法:

if !available(version: "10") {
    print("Not available")
}
你是说像一个
如果不可用(…)
?你不能把它放在
else
子句中吗?