swift - 在 Swift 中使用 Set 时出现编译器段错误

标签 swift swift4 xcode9

这段代码工作正常:

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/

相关文章:

ios - 使用按钮展开/折叠 tableView 单元格,并在单元格展开时显示 View 中的其他元素

ios - UICollectionView Cell中的动态宽度大小问题

autolayout - 自动调整大小在 iOS11/XCode 9 中不起作用

swift - 从 CoreData 刷新 NSTreeController

ios - 使用 navigationController 堆栈时难以识别错误

arrays - 在哪里放置对结构数组进行操作的代码?

xcode - 我在哪里可以找到 Xcode 崩溃报告?

ios - 如何在 Int 和 Float 类型中添加千位分隔符?

swift - 当使用来自另一个类实例的指针引用时,UnsafeBufferPointer 将无法工作

ios - 使用未解析的标识符 'segue'