我正在构建一个 Swift 静态库:
当我尝试使用此设置将其添加到 iOS 项目时:
Failed to build module 'LibraryX'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5.2 effective-4.2 (swiftlang-1300.0.47.5 clang-1300.0.29.30)', while this compiler is 'Apple Swift version 5.6 effective-4.2 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)'). Please select …Run Code Online (Sandbox Code Playgroud) 我相信我正在从命令行运行 Swift 5.7,并且 Swift 5.7 应该具有新的 Regex 类和 /.../ 语法。但似乎并非如此。
我有以下 Swift 源代码“parse.swift”。但 Swift 似乎不理解 Swift 5.7 /.../ 语法来指示 Regex (生成的错误不应该用于合法的 regex 模式),所以我尝试了一种不同的方法,发现它无法识别新的 Regex 类本身。
let pattern = #"^ ,([A-Z][A-Z])([0-9][0-9]),(.*?),(.*?) "#
let regex = try! Regex(pattern)
Run Code Online (Sandbox Code Playgroud)
$ swift parse.swift < somefile
parse.swift:3:18:错误:在范围内找不到“Regex”
让正则表达式 = 尝试!正则表达式(模式)
^~~~~
有什么我需要导入或做不同的事情吗?
这是它说我正在运行的版本:
$ swift --version
Apple Swift 版本 5.7-dev(LLVM eecf02df5133efe、Swift ad06e7d7251311a) 目标:arm64-apple-macosx12.0
我通过从 ~/.zshrc 导出以下内容来选择 5.7 版本的 Swift
export TOOLCHAINS=org.swift.57202206261a
export TOOLCHAIN_DIR=/Library/Developer/Toolchains/swift-5.7-DEVELOPMENT-SNAPSHOT-2022-06-26-a.xctoolchain
Run Code Online (Sandbox Code Playgroud)