Puoi usare protocollo vs asserzione come suggerito nella risposta qui da drewag
. Tuttavia, manca un esempio per il protocollo. Sto coprendo qui,
Protocollo
protocol SomeProtocol {
func someMethod()
}
class SomeClass: SomeProtocol {
func someMethod() {}
}
Ora ogni sottoclasse è richiesta per implementare il protocollo che viene controllato in fase di compilazione. Se SomeClass non implementa someMethod, riceverai questo errore in fase di compilazione:
errore: il tipo "SomeClass" non è conforme al protocollo "SomeProtocol"
Nota: funziona solo per la classe più in alto che implementa il protocollo. Qualsiasi sottoclasse può ignorare allegramente i requisiti del protocollo. - come commentato damemmons
Asserzione
class SuperClass {
func someFunc() {
fatalError("Must Override")
}
}
class Subclass : SuperClass {
override func someFunc() {
}
}
Tuttavia, l'asserzione funzionerà solo in runtime.