ios - @available - 仅在 OS X 上可用

标签 ios swift macos

是否可以将函数/计算变量标记为在 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/

相关文章:

ios - 从 Firebase 读取数据并保存到数组中 (Swift)

ios - Alamofire 使用带有字典参数的可选值

python - 如何使用 appscript 和 Python 将文件列表输入到应用程序中?

ios - 尝试升级到特定版本时出现 Flutter "Unable to checkout version branch for version number"

ios - 为所有 UINavigationBar 设置颜色

ios - 重新启动应用程序 swift 4 时,UserDefaults 有时不保留保存的值

java - 使用终端运行java文件

macos - 在 Cocoa 中设置符号链接(symbolic link)的修改日期

javascript - Window.click 事件不会在 IOS safari 上触发 - 仅限 JavaScript

swift - 单击按钮将移动到下一个 Controller ?