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

时间:2015-07-17 12:28:21

标签: 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因信号失败:分段错误:11”

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

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

我刚刚为上面显示的变量添加了这个代码,并且对filterSettings的任何其他引用都是有价值的。没有对正在编译和运行的代码进行其他更改。

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

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

我也尝试过使用其中一个答案中建议的可选声明: - &gt; Swift compiler segmentation fault when building但无济于事。

编辑:一些其他信息。

  1. 我删除并重新安装了Xcode。错误仍然存​​在。
  2. 在类中声明了变量我实际上并没有在任何函数中引用它们,所以我尝试在代码中的几个位置打印变量。错误仍然存​​在。
  3. 我将声明从类中的全局级别移动到其中一个函数中。错误消失了。
  4. 所以 - 上面三个部分为我解决了这个问题。我希望变量可以在类中使用,所以现在我可能需要将它们作为参数传递(这似乎有效)。但是,我仍然不明白错误发生的原因,以及我是否遗漏了语法错误。

1 个答案:

答案 0 :(得分:0)

好的 - 我现在已经能够在没有错误的情况下编译代码,并且在类的顶部声明了属性。

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

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

当我使用以下语法

初始化属性时
let propertyName: Set<String> = ["item1", "item2"]

编译没有错误。在函数中声明属性时,短格式声明起作用。