在本地范围内使用的计算属性导致'命令因信号分段错误而失败...?

时间:2017-04-13 16:50:56

标签: swift swift3.1

我在Swift 3中使用了以下代码,它工作得很好......

func postObject(toCategories categories: [String], object: Object){

    var postedToCategory: Bool {
        if categories.count > 1 {
            return true
        } else if categories[0] != "memes with friends" {
            return true
        }
        return false
    }

    var json = object.jsonified
    json["postedToCategory"] = postedToCategory

    doSomething(dict: json)
}


struct Object {

   var postedToCategory: Bool
   var name: String

   var jsonified: [String: Any] {
       var dict = [String: Any]()
       dict["name"] = self.name
       dict["postedToCategory"] = self.postedToCategory
       return dict
   }


   init(postedToCategory: Bool, name: String){
       self.postedToCategory = postedToCategory
       self.name = name
   }

}

但是一旦我更新到Swift 3.1,我不断收到Swift编译错误 - > “由于信号命令失败:分段错误11”。我将错误的来源追溯到我上面显示的方法,并发现在方法的本地范围内使用computed属性导致了问题。只需将其更改为存储的属性即可解决问题。

但有人知道为什么会这样吗?为什么我不能在本地方法范围使用计算属性?

0 个答案:

没有答案