我正在尝试用swift重新编写一个应用程序,它当前位于Objective-C中。我如何将这一行代码改为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;
    }
}
}

下面是我转换成斯威夫特的:
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

        }
    }
}

最佳答案

在Swift中,必须向下转换AnyObject类型的对象,而不是声明该类型

   var tabata = notification.object as! Tabata

关于objective-c - 如何将其从Obj-C转换为Swift?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31165974/

10-13 04:05