我在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属性导致了问题。只需将其更改为存储的属性即可解决问题。
但有人知道为什么会这样吗?为什么我不能在本地方法范围使用计算属性?