我想清理一些我的代碼,並用更復雜的函數替換long if語句。在這種情況下,我希望變量「pickerSelectedName」更新兩個標籤,但現在我下面創建的函數會使程序崩潰。崩潰:「線程1:EXC_BAD_ACCESS」?
錯誤代碼 - 主題1:EXC_BAD_ACCESS(代碼= 2,地址= 0xbf784ffc)
可惜我還是新的快捷和Xcode的,所以我不偉大的調試器...我想知道如果有人可以幫助解釋爲什麼這是崩潰?
人
class Person {
var name = String()
var age = Int()
let nameList:Dictionary = ["Bob":Bob(),"Joe":Joe(),"Tom":Tom()]
class Bob:Person {
override init() {
super.init()
name = "Bob"
age = 27
}
}
class Joe:Person {
override init() {
super.init()
name = "Joe"
age = 26
}
}
class Tom:Person {
override init() {
super.init()
name = "Tom"
age = 28
}
}
}
的ViewController
class ViewController: UIViewController {
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var ageLabel: UILabel!
var pickerSelectedName = "Bob"
var name = String()
var age = String()
override func viewWillAppear(animated: Bool) {
updateLabel(pickerSelectedName)
}
func updateLabel(name:String) {
var selectedName = String()
var selectedAge = String()
if Person().nameList[name] != nil {
selectedName = (Person().nameList[name]?.name)!
selectedAge = (Person().nameList[name]?.name)!
} else {
selectedName = "Error"
selectedAge = "Error"
}
nameLabel.text = selectedName
ageLabel.text = selectedAge
}
}
在你的'viewWillAppear(animated:Bool)'方法中,我找不到你聲明屬性'selectedName'的地方。你有沒有忽略你的一些代碼,或者你是否有意? – Leviathlon
另外'People'不是一個可行的類名,人們傾向於使用單數名詞來表示類名,因爲它不是一個包類。 「人」是要走的路。 – Leviathlon
哦,對不起......它應該是pickerSelectedName。我剛剛更新,很好找。 – sMk