从Asset类型的数组中获取内容

时间:2017-08-16 22:11:43

标签: arrays xcode swift3 contentful

我试图找出一个快速的代码。我正在使用Contentful,我正在努力深入了解一些数据。当我打印条目时,我的值如下:

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

我如何从中获取数据?在迁移之前,我有这个:

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

我需要在那条线上做些什么改变吗?

1 个答案:

答案 0 :(得分:1)

当使用contentful.swift的最新版本0.9.2时,从条目的链接字段中提取链接数组(以及它的第一个元素)将按以下方式完成:< / p>

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

如果您知道存储在"appHeroImages"的所有关联值均为Asset类型,您还可以使用flatMap快速将[Link]转换为[Asset]

guard let assets = (category.fields["appHeroImages"] as? [Link])?.flatMap { $0.asset } else { return }