Как правильно использовать UISwitch?
Мой код не работает. Я не знаю почему. Проблема заключается в свойстве функции switchChanged. Если свойство пусто, значит код работает.
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let rect = CGRectMake(130, 100, 0, 0)
let uiSwitch = UISwitch(frame: rect)
uiSwitch.setOn(true, animated: true)
uiSwitch.addTarget(self, action: "switchChanged", forControlEvents: UIControlEvents.ValueChanged)
self.view.addSubview(uiSwitch)
}
func switchChanged(uiSwitch: UISwitch) {
var message = "Turn on the switch"
if uiSwitch.on {
message = "Turn off the switch"
} else {
message = "Turn on the switch"
}
let alert = UIAlertController(title: "Information", message: message, preferredStyle: UIAlertControllerStyle.Alert)
let action = UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)
alert.addAction(action)
self.presentViewController(alert, animated: true, completion: nil)
}
Ошибка: "libC++abi.dylib: завершается с необработанным исключением типа NSException"
1 ответ
Решение
"switchChanged"
неверное имя селектора, вы должны использовать "switchChanged:"
для учета параметра. switchChanged
будет метод без параметров.
Также в Swift вы должны использовать #selector(switchChanged(_:))
вместо. Это подтвердит существование селекторов во время компиляции.