[解決済み] Swift - サブクラスでオーバーライドする必要があるクラスメソッド
2022-09-19 09:18:27
質問
Swift で "純粋仮想関数" を作成する標準的な方法はありますか。 でなければなりません。 はすべてのサブクラスによってオーバーライドされなければならず、そうでない場合は、コンパイル時エラーを引き起こしますか?
どのように解決するのですか?
2つのオプションがあります。
1. プロトコルを使用する
スーパークラスをクラスではなくプロトコルとして定義する
プロ : 各サブクラス(実際のサブクラスではない)が必要なメソッドを実装しているかどうか、コンパイル時にチェックします。
コン : スーパークラス(プロトコル)はメソッドやプロパティを実装できない。
2. スーパーバージョンのメソッドでアサートする
例
class SuperClass {
func someFunc() {
fatalError("Must Override")
}
}
class Subclass : SuperClass {
override func someFunc() {
}
}
プロ : スーパークラスでメソッドやプロパティを実装できる
コン : コンパイル時のチェックがない
関連
-
[解決済み】「Fatal error: Unexpectedly found nil while unwrapping an Optional value "とはどういう意味ですか?
-
[解決済み] Swiftのstatic funcとclass funcの違いは何ですか?
-
swift 4.0でのdispatch_async,dispatch_afterの使用について
-
[解決済み] 使用しているSwiftのバージョンを確認するにはどうすればよいですか?
-
[解決済み] Swift Betaのパフォーマンス:配列のソート
-
[解決済み] 純粋な」Swift で弱いプロトコル参照を作るには (@objc なしで) どうしたらいいですか?
-
[解決済み] Swiftのクラスにおける静的関数/変数とクラス関数/変数?
-
[解決済み】なぜ、Swiftの文字列では、?のような絵文字が奇妙に扱われるのですか?
-
[解決済み】Swiftの`let`と`var`の違いは何ですか?
-
[解決済み] SwiftでUIViewのサブクラスのためのカスタムinitを書くには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Swiftがエラーを報告。アボートトラップ:6
-
[解決済み] SwiftのプロトコルとJavaのインターフェイスを比較する
-
[解決済み] Swift言語における抽象関数
-
[解決済み] Swift 3でカスタム通知を作成するには?
-
[解決済み] swiftで改行なしの印刷をする
-
[解決済み] クラス 'ViewController' は swift で初期化されません。
-
[解決済み] UIViewの定高制約をプログラムで更新するには?
-
[解決済み] Swiftで複数のカスタムセルを持つUITableview
-
[解決済み] ""内の二重引用符を印刷するには?
-
[解決済み] Swift で UIViewController のサブクラス用のカスタムイニシャライザを作るには?