Bazı kodlarımı temizlemeye çalışıyorum ve daha karmaşık işlevlere sahip ifadeler uzun süre değiştirin. Bu durumda, iki etiketi güncellemek için "pickerSelectedName" değişkenini istiyorum, ancak şu anda aşağıda oluşturduğum işlev programa çarpıyor.Kilitlenme: "Konu 1: EXC_BAD_ACCESS"?
hata kodu - Konu 1: EXC_BAD_ACCESS (kod = 2, adres = 0xbf784ffc)
Ne yazık ki hala hızlı ve Xcode için yeni, bu yüzden debugger ile harika değilim ... Birisi acaba Bunun neden çöktüğünü açıklamaya yardımcı olabilir?
Kişi
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 hiçbir tanımlanmış olan bir koleksiyonda aynı tip ait tuşları ve aynı tip ait değerleri arasında
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 (animasyonlu: Bool) yönteminde,' selectedName 'özelliğini bildirdiğiniz yeri bulamadım. Bazı kodlarını atladın mı yoksa kasten mi yaptın? – Leviathlon
Ayrıca "İnsanlar" geçerli bir sınıf adı değil, insanlar sınıf isimleri için tekil isimler kullanma eğilimindedir, çünkü bu bir çanta sınıfı değildir. 'Kişi' gitmek için yoldur. – Leviathlon
oh, pardon ... bu seçici seçilmelidirSelectedName. Yeni güncelledim, iyi buldum. – sMk