我在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但无济于事。
编辑:一些其他信息。
所以 - 上面三个部分为我解决了这个问题。我希望变量可以在类中使用,所以现在我可能需要将它们作为参数传递(这似乎有效)。但是,我仍然不明白错误发生的原因,以及我是否遗漏了语法错误。
答案 0 :(得分:0)
好的 - 我现在已经能够在没有错误的情况下编译代码,并且在类的顶部声明了属性。
问题在于使用简短形式声明依赖于被推断的项目类型。
let propertyName: Set = ["item1", "item2"]
当我使用以下语法
初始化属性时let propertyName: Set<String> = ["item1", "item2"]
编译没有错误。在函数中声明属性时,短格式声明起作用。