Swiftには抽象メソッドがないため、デフォルトの実装で無条件にエラーが発生するメソッドを作成しています。これにより、サブクラスは抽象メソッドをオーバーライドします。関数が値を返すことが期待され、上記の機能は一切return
文を持っていない、コンパイルが失敗しているので:Swiftは、スローされた例外のために関数が決して返されないようにします。
class SuperClass {
func shouldBeOverridden() -> ReturnType {
let exception = NSException(
name: "Not implemented!",
reason: "A concrete subclass did not provide its own implementation of shouldBeOverridden()",
userInfo: nil
)
exception.raise()
}
}
問題:私のコードは次のようになります。私はこの関数が常にエラーを発生させるため、実行を完了できないことをコンパイラーに知らせるために何らかの方法が必要です。
どのようにエラーハンドリングがすべてライブラリレベルと思われるので、コンパイラの理解を超えて、Swiftでこれを行うことができますか?プログラムの実行を(うまくいけば正常に)終了するための言語レベルの機能はありますか?
解決策を使用して質問に自己回答したが、悪い/間違った問題を解決しようとしています。 Swiftには抽象メソッドが組み込まれていない理由があります。 – nhgrif