問題タブ [protocol-oriented]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
72 参照

swift - 配列引数の制約付きプロトコルを拡張することはできません

例を挙げて説明していきます。firstName私たちは、次のような力を持つためのプロトコルを持っていますlastName:

使用するタイプにはこれら 2 つがありますが、オプションの形式です。

に準拠した後ProfileRepresentable、 を拡張し、状態ProfileRepresentableの値とデフォルトの値を返そうとします。nil

ここまでは順調ですね

のリストにも同様のフローがありProfileます。

創刊

に準拠しても、期待どおりに実装が自動的に行われるわけではありません (ProfilerRepresentable既にProfile準拠しているためProfileRepresentable)

第二号

前のパターンに従って、拡張ProfilerRepresentableが期待どおりに機能せず、警告が発生します。

⚠️ この関数を通るすべてのパスは自分自身を呼び出します

ちなみに、配列の目標を達成するにはどうすればよいですか?

0 投票する
1 に答える
83 参照

ios - 複数のモデルタイプで使用できるように、Swiftで基本クラスのプロパティをジェネリックにする方法は?

BaseCustomCell をさまざまなタイプのモデルで再利用できるように、「cellViewModel」プロパティをジェネリックとして使用したいと考えています。元。

//これは、cellForRowAtIndexPathメソッドから設定する方法です:

現在、異なるタイプの cellViewModel に対して毎回新しい BaseCustomCell を作成しています。何か解決策を教えていただけませんか?

0 投票する
0 に答える
30 参照

ios - SwiftUI: プロトコルでビューの外観を定義する

SwiftUI は初めてですが、すべての UI コンポーネントがプロトコルまたは構造体になっていることがわかりました。

プロトコルについて私が気に入っているのは、オブジェクト指向プログラミングとは異なり、継承を必要とせずにプロトコルを組み合わせることができるという事実です。

しかし、次に、複数のビューの外観をどのように組み合わせることができるか、疑問に思っていました。たとえばBlueView、青い背景のビューをRoundedCorner定義するプロトコルと、角の丸いビューを定義するプロトコルがあるとします。

どうすればこのようなことができますか:

MyView: View, BlueView, RoundedCorner { ...

アプリのすべてのビューでこれらのコード行を設定する必要がないようにするには?

ご協力ありがとうございました

0 投票する
1 に答える
39 参照

swift - あるクラスの {get set} と別のクラスの {get} として、プロトコルで変数プロパティを作成する方法

Stage1 クラスでは {get set} として「mustBeSettable」にアクセスする必要がありますが、Stage2 クラスでは「mustBeSettable」は {get} のみである必要があります。しかし、両方のクラスで同じプロパティを使用する必要があります。