这将如何从 Obj-C 转换为 Swift?
How would this be converted from Obj-C to Swift?
我正在尝试在 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;
}
}
}
这是我转换成的 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
}
}
}
在 Swift 中你必须向下转型 AnyObject 类型的对象而不是声明类型
var tabata = notification.object as! Tabata
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
}
}
}
希望对您有所帮助!
我正在尝试在 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;
}
}
}
这是我转换成的 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
}
}
}
在 Swift 中你必须向下转型 AnyObject 类型的对象而不是声明类型
var tabata = notification.object as! Tabata
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
}
}
}
希望对您有所帮助!