Es scheint, dass alle Beispiele für GameplayKit immer in Swift sind. Ich habe mich dafür entschieden, im Moment nicht zu swift zu wechseln, und ich habe gerade viel Code in Objective C übersetzt, was die meiste Zeit in Ordnung ist.Wie man GVStates isValidNextState in Objective C implementiert
Ich versuche die isValidNextState
Methode aus der GKState
Klasse zu implementieren, aber ich bekomme einen Fehler für die switch-Anweisung und ich bin mir nicht sicher, was es will ... es scheint in Swift das ist in Ordnung, aber nicht in obj C. der Fehler, ich bin immer ist:
Fehler: Statement requires expression of integer type('__unsafe_unretained Class _Nonnull' invalid
Was stateclass
in der switch-Anweisung sollte ich statt haben?
-(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;
}
Hier ist das Äquivalent in Swift, der gut arbeitet:
override func isValidNextState(stateClass: AnyClass) -> Bool {
switch stateClass {
case is InvulnerableState.Type:
return true
default:
return false
}
}
Es ist auch erwähnenswert, dass man in Objective-C nur ganzzahlige Typen einschalten kann, d. H. Eine "Ganzzahl". –