2017-08-16 7 views
0

私はスウィフトコードを見つけようとしています。私はContentfulを使用しており、いくつかのデータを取得するためにドリルダウンしようとしています。私がエントリーのプリントをすると、私は以下の値を受け取ります:アセットタイプの配列からコンテンツを取得

"appHeroImages": [Contentful.Link.asset(Contentful.Asset)]] 

私はそのデータをどのように取得するのですか?移行する前に私はこれを持っていた:

let image = (category.fields["appHeroImages"] as! Array<Any>)[0] as? Contentful.Asset 

私はその行を変更する必要がありますか?

答えて

1

次のように行われることになるエントリにリンクフィールドから(と、それは最初の要素です)リンク配列の配列を抽出し、contentful.swiftの、最新バージョン、0.9.2を使用して:

if let links = category.fields["appHeroImages"] as? [Link], let firstAsset = links.first?.asset { 
    print(asset.urlString!) // Don't implicitly unwrap in a real app. 
} 

の場合

guard let assets = (category.fields["appHeroImages"] as? [Link])?.flatMap { $0.asset } else { return } 
:あなたはまたすぐに [Link] [Asset]に変換するためにflatMapを使うことができ Asset "appHeroImages"に格納されているすべてのリンクされた値のタイプがあることを知っています
関連する問題