是否可以将函数/计算变量标记为在 OS X 上可用而在 iOS 上不可用(反之亦然)?诸如 @available(OSX 10.0,iOS 不可用)
。
我知道 #if OSX
语句,但是,我正在尝试实现 Apple 为 NSURLThumbnailKey
所做的事情 - 它被标记为 NS_AVAILABLE_MAC (10_10);
在 ObjC 中,编译器会提示符号不可用,而不是编译器无法解析符号。
此外,我发现 Swift 中的 #if
语句存在错误,例如,定义 func myFunc(_, arg1:)
和 func
将导致错误,指出 #if
范围内的 myFunc(_, somethingElse:)myFunc
已被定义。这就是为什么我尽量避免使用 #if
。
最佳答案
您应该能够执行以下操作:
@available(OS X 10.10, *)
强制它只适用于 OS X 10.10 更高版本,或者:
if #available(OS X 10.10, *)
在 Hacking With Swift 上有更多信息可用.
多规范:
@available(iOS, unavailable, message="nope")
@available(OS X 10.10, *)
func someFunc()
关于ios - @available - 仅在 OS X 上可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34922118/