似乎 GameplayKit 的所有示例总是在 Swift 中。我决定暂时不使用 swift,我刚刚将大量代码翻译成 Objective C,这在大多数情况下都很好。
我正在尝试isValidNextState
从类中实现该方法GKState
,但是我收到 switch 语句的错误,我不确定它想要什么……在 Swift 中这似乎很好,但在 obj C 中却不行。我得到的错误是:
错误:Statement requires expression of integer type('__unsafe_unretained Class _Nonnull' invalid
我应该在 switch 语句中而不是stateclass
什么?
-(BOOL) isValidNextState:(Class)stateClass {
switch (stateClass) { //ERROR ON THIS LINE
case [InvulnerableState class]: //not sure what this should be either
return YES;
break;
default:
break;
}
return NO;
}
这是 Swift 中的等价物,效果很好:
override func isValidNextState(stateClass: AnyClass) -> Bool {
switch stateClass {
case is InvulnerableState.Type:
return true
default:
return false
}
}