継承されたクラスの拡張機能の関数をオーバーライドするにはどうすればよいですか?

TruMan1

とのscrollToBottom関数がUIScrollViewありUITableViewます。問題は、それらがエラーで互いに競合していることです。Declarations in extensions cannot override yet

これは私が持っているものです:

extension UIScrollView {

    func scrollToBottom(animated: Bool = true) {
        ...
    }
}

extension UITableView {

    func scrollToBottom(animated: Bool = true) {
        ...
    }
}

からUITableView継承しているのでUIScrollView、これを行うことはできません。どうすればこれを達成できますか?

レオ・ダバス

プロトコルScrollableToBottom作成し、そこでメソッドを定義します。

protocol ScrollableToBottom {
    func scrollToBottom(animated: Bool)
}

それを作成UIScrollViewしてUITableView継承します:

extension UIScrollView: ScrollableToBottom  { }
extension UITableView: ScrollableToBottom  { }

次に、プロトコル制約Selfを特定のクラスに拡張する必要があります

extension ScrollableToBottom where Self: UIScrollView {
    func scrollToBottom(animated: Bool = true) {

    }
}
extension ScrollableToBottom where Self: UITableView {
    func scrollToBottom(animated: Bool = true) {

    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

継承されたメソッドをオーバーライドする代わりに拡張するにはどうすればよいですか?

分類Dev

== のオーバーライドは継承されたクラスでは機能しないようです

分類Dev

さまざまな継承された引数で関数をオーバーライドするにはどうすればよいですか(Swift)

分類Dev

インストールされているアドオン/拡張機能のリストをリークするためにブラウザを停止するにはどうすればよいですか?

分類Dev

継承されたクラスは、別の継承されたクラスの仮想関数をオーバーライドできますか?

分類Dev

Sphinxドキュメントでクラスの継承されたメンバーを表示するにはどうすればよいですか?

分類Dev

Swift-具象サブクラスの拡張メソッドをオーバーライドするにはどうすればよいですか?

分類Dev

UIColorなどの既存のUIKitクラスの拡張機能にイニシャライザーを追加するにはどうすればよいですか?

分類Dev

親クラスのすべての機能を継承するにはどうすればよいですか?

分類Dev

継承されるデータクラスにオプションのフィールドを作成するにはどうすればよいですか?

分類Dev

サブクラスがSwiftの継承された関数をオーバーライドしないようにする

分類Dev

多重継承で同じ名前を持つ基本クラスの仮想関数をオーバーライドするにはどうすればよいですか?

分類Dev

テイラー級数で関数の合成を拡張するにはどうすればよいですか?

分類Dev

Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

分類Dev

Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

分類Dev

Firefox Web拡張機能でContent-Typeヘッダーを適切にオーバーライドするにはどうすればよいですか?

分類Dev

サブクラスで継承されたAPIメンバーの名前を変更するにはどうすればよいですか?

分類Dev

データクラス(Kotlin)をスーパークラスから拡張し、スーパークラスフィールドの1つを継承するにはどうすればよいですか?

分類Dev

クラスがクラスを継承する場合、メソッドのオーバーライドはどのように機能しますか?

分類Dev

基本クラスのフィールド機能をオーバーライドするにはどうすればよいですか?

分類Dev

React.jsのコンポーネントをオーバーライドまたは拡張するにはどうすればよいですか?

分類Dev

拡張子なし+指定された拡張子の.gitattributesを介してサブディレクトリ内の行末をオーバーライドするにはどうすればよいですか?

分類Dev

特定のIDでオペラギャラリーにCRX / NEX拡張機能をアップロードするにはどうすればよいですか?

分類Dev

継承(拡張)を介してプライベートインスタンス変数を別のクラスに取得するにはどうすればよいですか?

分類Dev

wwwrootの外部で提供されるソースファイルを適切にブレークポイントするようにChrome(またはEdge)拡張機能のデバッガーを設定するにはどうすればよいですか?

分類Dev

拡張機能のパラメーターを使用して関数変数を作成するにはどうすればよいですか?

分類Dev

SWIGを介してすでにラップされたライブラリの拡張機能を作成するにはどうすればよいですか?

分類Dev

タスクバーでChrome拡張機能のウィンドウを点滅させるにはどうすればよいですか?

分類Dev

継承されたコントロールのイベントにアクセスせずにオーバーライドするにはどうすればよいですか?

Related 関連記事

  1. 1

    継承されたメソッドをオーバーライドする代わりに拡張するにはどうすればよいですか?

  2. 2

    == のオーバーライドは継承されたクラスでは機能しないようです

  3. 3

    さまざまな継承された引数で関数をオーバーライドするにはどうすればよいですか(Swift)

  4. 4

    インストールされているアドオン/拡張機能のリストをリークするためにブラウザを停止するにはどうすればよいですか?

  5. 5

    継承されたクラスは、別の継承されたクラスの仮想関数をオーバーライドできますか?

  6. 6

    Sphinxドキュメントでクラスの継承されたメンバーを表示するにはどうすればよいですか?

  7. 7

    Swift-具象サブクラスの拡張メソッドをオーバーライドするにはどうすればよいですか?

  8. 8

    UIColorなどの既存のUIKitクラスの拡張機能にイニシャライザーを追加するにはどうすればよいですか?

  9. 9

    親クラスのすべての機能を継承するにはどうすればよいですか?

  10. 10

    継承されるデータクラスにオプションのフィールドを作成するにはどうすればよいですか?

  11. 11

    サブクラスがSwiftの継承された関数をオーバーライドしないようにする

  12. 12

    多重継承で同じ名前を持つ基本クラスの仮想関数をオーバーライドするにはどうすればよいですか?

  13. 13

    テイラー級数で関数の合成を拡張するにはどうすればよいですか?

  14. 14

    Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

  15. 15

    Djangoテンプレートで継承されたコンテナをオーバーライドするにはどうすればよいですか?

  16. 16

    Firefox Web拡張機能でContent-Typeヘッダーを適切にオーバーライドするにはどうすればよいですか?

  17. 17

    サブクラスで継承されたAPIメンバーの名前を変更するにはどうすればよいですか?

  18. 18

    データクラス(Kotlin)をスーパークラスから拡張し、スーパークラスフィールドの1つを継承するにはどうすればよいですか?

  19. 19

    クラスがクラスを継承する場合、メソッドのオーバーライドはどのように機能しますか?

  20. 20

    基本クラスのフィールド機能をオーバーライドするにはどうすればよいですか?

  21. 21

    React.jsのコンポーネントをオーバーライドまたは拡張するにはどうすればよいですか?

  22. 22

    拡張子なし+指定された拡張子の.gitattributesを介してサブディレクトリ内の行末をオーバーライドするにはどうすればよいですか?

  23. 23

    特定のIDでオペラギャラリーにCRX / NEX拡張機能をアップロードするにはどうすればよいですか?

  24. 24

    継承(拡張)を介してプライベートインスタンス変数を別のクラスに取得するにはどうすればよいですか?

  25. 25

    wwwrootの外部で提供されるソースファイルを適切にブレークポイントするようにChrome(またはEdge)拡張機能のデバッガーを設定するにはどうすればよいですか?

  26. 26

    拡張機能のパラメーターを使用して関数変数を作成するにはどうすればよいですか?

  27. 27

    SWIGを介してすでにラップされたライブラリの拡張機能を作成するにはどうすればよいですか?

  28. 28

    タスクバーでChrome拡張機能のウィンドウを点滅させるにはどうすればよいですか?

  29. 29

    継承されたコントロールのイベントにアクセスせずにオーバーライドするにはどうすればよいですか?

ホットタグ

アーカイブ