@available - make仅在OS X上可用

时间:2016-01-21 11:07:22

标签: ios swift macos

是否可以在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

1 个答案:

答案 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()