我正在 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但没有效果。
编辑:一些附加信息。
- 我删除并重新安装了 Xcode。错误仍然发生。
- 在类中声明变量后,我实际上并没有在任何函数中引用它们,因此我尝试在代码中的几个位置 println 变量。错误仍然发生。
- 我将声明从类内的全局级别移至其中一个函数内。错误消失了。
所以-以上三个部分解决了我的问题。我希望变量可以通过类使用,所以现在我可能需要将它们作为参数传递(这似乎有效)。但是,我仍然不明白为什么会发生错误,以及是否是我缺少的语法问题。
最佳答案
好的 - 我现在已经能够编译代码,并且在类顶部声明的属性不会出现错误。
问题在于使用了依赖于所推断的项目类型的简短声明。
let propertyName: Set = ["item1", "item2"]
当我使用以下语法初始化属性时
let propertyName: Set<String> = ["item1", "item2"]
编译没有错误。当在函数内声明属性时,简短形式声明有效。
关于macos - OS X Swift 编译器错误 - 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31475863/