首页 > 解决方案 > NSAccessibilityProtocol vs NSAccessibility(保持 XCode 9 & 10 兼容性)

问题描述

我刚刚安装了 Xcode 10 测试版。

问题是:

XCode 10 中的错误消息是

'NSAccessibility' 在 Swift 中不可用:已重命名为 'NSAccessibilityProtocol'

XCode 9 中的错误消息是

使用未声明的类型“NSAccessibilityProtocol”

有没有办法让项目与两个 XCode 版本兼容?

我试过了:

#if swift(>=4.1)
return object is NSAccessibilityProtocol
#else
return object is NSAccessibility
#endif

但它没有帮助。

如果我没记错的话,两个 XCode 的 Swift 版本是相同的,它取决于当前上下文中的“构建设置”。但我至少试过了。

我阅读了兼容性文章,但目前提示很少。

看起来它取决于 AppKit 版本。但我不知道如何表达这种情况。

AppKit 的新功能

Swift 和 Objective-C API 增强 AppKit 的 Swift 接口是

在 macOS 10.14 中进行了改进,以追求更高的清晰度、一致性、简洁性和原生 Swift 感觉。在许多情况下,这些增强与对相应 Objective-C API 的改进同时进行。这些变化包括正式化非正式协议;将枚举移动到公共前缀标识符约定;将 Swift 声明提升到适当的本地命名空间;为 Swift 重命名一些函数;用计算属性替换函数;为一些以前只读的数组值属性添加设置器;以及这些发行说明中讨论的类似增强功能。

标签: swiftxcodexcode10

解决方案


推荐阅读