这段代码工作正常:
let lines = ["one", "one", "two"]
let lineSet = lines
但是在编译这个的时候:
let lines = ["one", "one", "two"]
let lineSet = Set(lines)
我得到:
Command failed due to signal: Segmentation fault: 11
我有 Xcode 版本 9.0 (9A235)。这真的是一个错误还是我只是做错了什么?
我现在的解决方法:
var lineSet = Set<String>()
let lines = ["one", "one", "two"]
lines.forEach { lineSet.insert($0) }
最佳答案
构造lineSet
的更好、更惯用的方法很简单:
let lineSet: Set = ["one", "one", "two"]
希望这能修复您的编译器崩溃问题。不幸的是,我无法完全重现您的原始问题,因此我无法真正确认我的修复会有任何不同;)
如前所述,删除 DerivedData
文件夹是个好主意(~/Library/Caches/com.apple.dt.Xcode
也可能有帮助)。当 Xcode 开始表现不正常时,这是一种有点标准的做法。
关于swift - 在 Swift 中使用 Set 时出现编译器段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46531754/