質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%

Q&A

1回答

455閲覧

Bindingの定義コードについて

tamatebako

総合スコア7

0グッド

0クリップ

投稿2022/01/17 04:00

swiftuiの初学者です。

swiftuiのbindingの定義コードを確認すると、
BindingはプロトコルDynamicPropertyに準拠しています。
そしてプロトコルDynamicPropertyではupdate()を定義しています。

しかし、Bindingの定義コードを見るとプロトコルを準拠しているのにも関わらず、update()が定義されていません。
なぜエラーにならないのかがわかりません。
通常プロトコルに準拠している場合は、その準拠元に定義しているプロパティやメソッドを準拠先で定義する必要がある認識でした。

初学者でまだ勉強中なのですが、
ご教授いただけますと幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

まだ回答がついていないのようでしたので入力してみます。

DynamicPropertyのドキュメントを見ると次のように記載されていました。

update()
Default implementation provided.

(機械翻訳)必要です。デフォルトの実装を提供する。

https://developer.apple.com/documentation/swiftui/dynamicproperty/update()-29hjo

定義コードからは明確に実装の内容まで読み取れなかったのですが、Protocol Extensionsかな?と思いました。

Protocol Extensions
Protocols can be extended to provide method, initializer, subscript, and computed property implementations to conforming types. This allows you to define behavior on protocols themselves, rather than in each type’s individual conformance or in a global function.

(機械翻訳)プロトコルは、メソッド、イニシャライザー、サブスクリプト、および計算プロパティの実装を適合するタイプに提供するために拡張することができます。これにより、各タイプの個別の適合性やグローバル関数ではなく、プロトコル自体に動作を定義することができます。

https://docs.swift.org/swift-book/LanguageGuide/Protocols.html#ID521

投稿2022/01/18 06:44

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問