swift - 无法在 Swift Docker 5.1.3 中使用“NSKeyValueObservation”
问题描述
我正在尝试在 Docker 上运行的 Swift 可执行文件中使用 NSKeyValueObservation。我正在使用以下 swift 版本:5.1.3
我剥离了所有内容,我只是在 main.swift 中声明:
var observer: NSKeyValueObservation?
返回的错误是:
/package/Sources/TestPackage/main.swift:30:19: error: use of undeclared type 'NSKeyValueObservation'
var observer: NSKeyValueObservation?
由于错误不会在本地发生,我的预感是 Docker 正在运行 linux 并且 linux 不知道 NSKeyValueObservation 但这在任何地方都没有记录。如果是这样,我该如何解决这个问题?
相关的 Docker 版本信息为:
Client: Docker Engine - Community
Version: 19.03.5
API version: 1.40
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:22:34 2019
OS/Arch: darwin/amd64
Experimental: false
Server: Docker Engine - Community
Engine:
Version: 19.03.5
API version: 1.40 (minimum version 1.12)
Go version: go1.12.12
Git commit: 633a0ea
Built: Wed Nov 13 07:29:19 2019
OS/Arch: linux/amd64
Experimental: false
containerd:
Version: v1.2.10
GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
runc:
Version: 1.0.0-rc8+dev
GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
docker-init:
Version: 0.18.0
GitCommit: fec3683
解决方案
你的预感是正确的。 NSKeyValueObservation
依赖于非达尔文平台上不存在的 Objective-C 运行时。您将需要使用另一种选择,例如某种 Rx 风味。
推荐阅读
- arrays - 在 PowerShell 中,针对大型数组的批量正则表达式删除速度非常慢
- antlr - Antlr 语法与预期的词法分析器规则不匹配
- docker - docker start 和 docker container start 有什么区别吗?
- excel - 按记录将 Access 查询结果导出到文件中的新工作表
- angular - angular 6 material2 mat-table MatRipple 错误
- android - OkHttp 忽略日志拦截器
- javascript - 方法名(arg) {} ≠ 方法名 = arg =>{}
- batch-file - 为什么我的 if 语句块似乎无法批量到达?
- javascript - Google recaptcha 未在本地主机上正确验证
- javascript - React JSX JSZip - var 范围不正确