swift - NSAccessibilityProtocol vs NSAccessibility(保持 XCode 9 & 10 兼容性)
问题描述
我刚刚安装了 Xcode 10 测试版。
问题是:
- XCode 10 希望我将 NSAccessibility 更改为 NSAccessibilityProtocol
- XCode 9 对NSAccessibilityProtocol 一无所知
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 版本。但我不知道如何表达这种情况。
Swift 和 Objective-C API 增强 AppKit 的 Swift 接口是
在 macOS 10.14 中进行了改进,以追求更高的清晰度、一致性、简洁性和原生 Swift 感觉。在许多情况下,这些增强与对相应 Objective-C API 的改进同时进行。这些变化包括正式化非正式协议;将枚举移动到公共前缀标识符约定;将 Swift 声明提升到适当的本地命名空间;为 Swift 重命名一些函数;用计算属性替换函数;为一些以前只读的数组值属性添加设置器;以及这些发行说明中讨论的类似增强功能。
解决方案
推荐阅读
- python - discord.py Sqlite3 remove() from select
- parsing - 解析器库中的 try 和 <|> 函数如何工作
- java - 如何使用 List 中的数据创建 ListView
- 安卓工作室 - javascript - pm2 错误:不能在模块外使用 import 语句
- c# - UserDBContext 类型不能用作方法“AddApiAuthorization”的泛型类型中的类型参数“TContext”
' - swift - 是否有一些写作的捷径:.map { $0 }
- docker - 我如何清洁码头工人?
- regex - Perl:在替换字符串变量中使用反向引用
- python - Tensorflow 2.3.0 未检测到 GPU
- java - 如何解决 java.lang.LinkageError:加载程序约束冲突