Você pode usar protocolo versus asserção conforme sugerido na resposta aqui por drewag
. No entanto, falta um exemplo para o protocolo. Estou cobrindo aqui,
Protocolo
protocol SomeProtocol {
func someMethod()
}
class SomeClass: SomeProtocol {
func someMethod() {}
}
Agora, todas as subclasses são necessárias para implementar o protocolo que é verificado em tempo de compilação. Se SomeClass não implementar someMethod, você receberá este erro de tempo de compilação:
erro: o tipo 'SomeClass' não está em conformidade com o protocolo 'SomeProtocol'
Observação: isso só funciona para a classe superior que implementa o protocolo. Qualquer subclasse pode ignorar alegremente os requisitos do protocolo. - como comentado pormemmons
Afirmação
class SuperClass {
func someFunc() {
fatalError("Must Override")
}
}
class Subclass : SuperClass {
override func someFunc() {
}
}
No entanto, a asserção funcionará apenas em tempo de execução.