是否可以在OS X上标记一个功能/计算变量,在iOS上不可用(反之亦然)?像@available(OSX 10.0, iOS unavailable)
。
我知道#if OSX
声明,但是,我试图实现Apple为NSURLThumbnailKey
所做的事情 - 它标记为NS_AVAILABLE_MAC(10_10);
in ObjC和编译器会抱怨符号不可用,而不是编译器无法解析符号。
另外,我发现Swift中的#if
语句有问题,例如,在func myFunc(_, arg1:)
范围内定义func myFunc(_, somethingElse:)
和#if
会导致表示已myFunc
已定义的错误。这就是为什么我试图避免使用#if
。
答案 0 :(得分:1)
您应该可以执行以下操作:
@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()