これが可能かどうかわかりませんが、と思っています。私はこれまでに見ました。スクロールジェネリックの<T>のアクセスプロパティとメソッド
私はアプリケーション全体でフォームオブジェクトに対していくつかの検証を実行しており、これを行うための中心的な再利用可能な方法が必要です。私は、次が出ている:
class RGOValidatedObject<T> {
var validationPredicate: ((RGOValidatedObject<T>) -> Bool)?
var isValid: Bool {
return true
}
}
私はそれを直接サブクラス化されたかのようにTの値を返すために、むしろRGOValidatedObject
にプロパティを追加するよりも、Tのプロパティとメソッドにアクセスできるようにしたいです次のことを考えてみましょう:
RGOValidatedObject<String>().substringToIndex(1)
これは私がちょうどT.
が可能です。このサブクラスほとんどかのように、私はRGOValidatedObject
にアクセスTのプロパティとメソッドの意味は何ですか?もしそうなら、私はどうやってそうするのですか?私はSwiftジェネリックスのコンセプトに慣れていませんが、それらの見た目は似ています。
'RGOValidatedObject().substringToIndex(1)'の結果はどうなりますか? –
配列のインデックスが範囲外の例外を予想しますが、それほど重要な点はありません。コンパイラが 'RGOValidatedObject'の' String'メソッドを認識するのは、もっと大事なことでしょうか? –
'T'型のバリューホルダープロパティを順番に追加する必要があるようです。あなたは 'Optional' enum構造体に非常によく似たものを受け取ります。おそらく、 'Optional'型実装フォワーディングがあなたの問題にどのように役立つかについての知識でしょう。あなたは素早いソースコードを掘り下げて研究しようとするかもしれません。 –