我正在尝试重新编写一个应用程序,它目前在Objective中。我如何将这一行改为Swift,因为我目前的尝试不正确
Tabata *tabata = [notification object];以下是整个功能:
- (void)stateChanged:(NSNotification*)notification
{
if (enabled)
{
Tabata *tabata = [notification object];
switch (tabata.getState) {
case EXERCISE:
case RELAXATION:
[player play];
break;
default:
break;
}
}
}以下是我转化为Swift的内容:
func stateChanged(notifcation: NSNotification) {
if enabled {
var tabata: Tabata! = notification.object //error "Use of unresolved identifier 'notification'"
switch tabata.getState() {
case .EXERCISE: fallthrough
case .RELAXATION:
player.play()
break
default:
break
}
}
}发布于 2015-07-01 16:14:30
在Swift中,您必须向下转换AnyObject类型的对象,而不是声明类型
var tabata = notification.object as! Tabata发布于 2015-07-01 17:08:23
func stateChanged(notification: NSNotification) {
if(enabled) {
var tabata: Tabata = notification.object as! Tabata
switch tabata.getState() {
case .EXERCISE:
fallthrough
case .RELAXATION:
player.play()
break
default:
break
}
}
}希望这能有所帮助!
https://stackoverflow.com/questions/31165974
复制相似问题