macos - OS X Swift 编译器错误 - 段错误

标签 macos swift compiler-errors

我正在 NSViewController 自定义类中进行一些变量声明。声明是:

var filterSettings: Dictionary<String, String> = ["Location": "All", "Status": "All", "PPRDate": "All", "Project Manager": "All"]
let locationFilterSettings: Set = ["All", "Newcastle", "Sydney", "ACT & Southern NSW", "Western Sydney", "Grafton"]
let statusFilterSettings: Set = ["All", "Active", "Inactive"]
var PPRDateFilterSettings: Set<NSDate> = []  // this value needs to be set programiticaly by loading up the available PPR Dates --- use PPRDateFilterSettings.insert(dateVariable)
var projectManagerFilterSettings: Set<String> = []  // this value needs to be set programatically by loading up the available PMs

当程序编译时,我收到一个错误,该错误显示在问题导航器中: - 代码中的任何特定行均未显示编译器错误。

当我转到问题导航器时,它针对此类显示以下错误。所有其他类都正确编译,没有错误:

"Swift Compiler Error Command failed due to signal: Segmentation fault: 11"

我承认我不知道如何调试这个错误。

我确实知道,如果我注释掉代码中的 let locationFilterSettings.. 行,编译器错误就会消失。

我刚刚为上面显示的变量添加了这段代码,并且确实使对 filterSettings 的任何其他引用都有值(value)。没有对按预期编译和运行的代码进行任何其他更改。

有关在何处/如何调试问题的任何建议,请告诉我。我不知道下一步该做什么。

我应该补充一点,我正在运行最新版本的 Xcode 和 OSX。

我还尝试按照此处答案之一的建议使用可选声明:--> Swift compiler segmentation fault when building但没有效果。

编辑:一些附加信息。

  1. 我删除并重新安装了 Xcode。错误仍然发生。
  2. 在类中声明变量后,我实际上并没有在任何函数中引用它们,因此我尝试在代码中的几个位置 println 变量。错误仍然发生。
  3. 我将声明从类内的全局级别移至其中一个函数内。错误消失了。

所以-以上三个部分解决了我的问题。我希望变量可以通过类使用,所以现在我可能需要将它们作为参数传递(这似乎有效)。但是,我仍然不明白为什么会发生错误,以及是否是我缺少的语法问题。

最佳答案

好的 - 我现在已经能够编译代码,并且在类顶部声明的属性不会出现错误。

问题在于使用了依赖于所推断的项目类型的简短声明。

let propertyName: Set = ["item1", "item2"]

当我使用以下语法初始化属性时

let propertyName: Set<String> = ["item1", "item2"]

编译没有错误。当在函数内声明属性时,简短形式声明有效。

关于macos - OS X Swift 编译器错误 - 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475863/

相关文章:

swift - 上传到 App Store 时,Cocoa Pods 会重新安装吗?

c++ - 散列模板类型

django - 升级到 Yosemite 后 Stunnel 不再有效

mysql:找不到命令,但它在我的路径中

c++ - 你能创建一个 C++ 类的 Objective-C++ 子类吗?

swift - fatal error : Index out of range - Swift 4 and Firebase

ios - 访问方法内部的变量并允许使用 segue 将其传递给其他 View Controller

python - 无法安装 Tensorflow Mac

scala - Scala本地类型推断下划线表示法

c - 无法使用 time_t 检查 C 中的最后修改时间