В приведенном ниже примере stateClass: AnyClass
действительный экземпляр класса, который, например, я мог бы позвонить, чтобы получить stateClass.name
или это просто ссылка на тип класса. Я чувствую, что из строки validChange
это просто ссылка на тип класса не фактический экземпляр любого класса, из которого я могу извлечь данные из?Ссылка Swift AnyClass на экземпляр класса или просто введите?
override func isValidNextState(stateClass: AnyClass) -> Bool {
let validChange = stateClass is MonsterAttack.Type
return validChange
}
Если вы хотите, чтобы получить доступ к экземпляру этого класса, вы можете сделать 'Statemachine .stateForClass (stateClass!) ' – Sez
@sez Какой тип имеет' stateMachine'? – Qbyte
Это «GKStateMachine». Обратите внимание, что он будет возвращать 'nil', если состояние было сконструировано, но еще не добавлено в конечный автомат. Но поскольку 'isValidNextState' вызывается конечным автоматом, которому принадлежит это состояние, должно быть хорошо вызвать' stateForClass' внутри 'isValidNextState'. – Sez