Feed
には、Feedable
プロトコルで定義されている必要なプロパティを実装している限り、特定の項目が表示されるとします。さんもPhoto
オブジェクトがフィードに値するされていることを言ってみましょう:スイフトアレイをプロトコルに準拠させる
extension Photo: Feedable { }
それはこれらの写真のArray
もFeedable
にあるかもしれないと言うことは可能ですか?
extension [Photo] : Feedable
または私はいつもFeedable
に準拠するために、PhotoAlbum
として、ラッパーオブジェクトのいくつかの種類が必要なのですか?
編集が
再反復するために、私は私がPhoto
オブジェクトFeedable
の配列のみを行うことができるかどうか興味がありました。 をコンテンツタイプFeedable
にしないで、Feedable
自体の配列をFeedable
にしないでください(どちらも必要な場合は以下の解決策として提供されます)。 (私が存在する疑い)ソリューションは、私は次のような結果とタイプFeedable
の変数を定義することができるようになるつまり
、:
var feedable: Feedable
//photo is feedable, so this is fine
feedable = Photo() //ok
//arrays of photos are feedable
let photo1 = Photo()
let photo2 = Photo()
feedable = [photo1, photo2]
//arrays of other things are not
feedable = ["no", "dice"] //nope
//even if the contents of an array are themselves Feedable, that's not sufficient. E.g. Video is Feedable, but Array of Videos is not.
let video1 = Video()
let video2 = Video()
feeble = video1 //fine
feedable = [video1, video2] //nope
おそらく(もちろんコンパイルされません)this gistショー意図はより明確になる。
'extension Array要素:Feedable {...}' –
@LeoDabus 'Photo'オブジェクトの配列と他の' Feedable'型の配列の 'Feedable'プロトコルの特定の実装を提供するつもりです。例えば、Photosの配列は 'Video'オブジェクトの配列とは異なる' feedDescription'を提供するかもしれません。 –
@matt 'Feedable'プロトコルは、'写真 'と'写真 'のグループとで異なる' feedDescription'実装を提供します。例えば。 "写真が追加されました"と "5枚の写真が追加されました"。フィードにふさわしいアイテム(写真、ビデオ、またはそのいずれかのグループ)のみが提供されているとします。 –