假设我们有一个枚举与关联的值类型。在下面的例子中,两个值类型是简单的对象,用于保存要共享的图像和网址。使用关联值映射swift枚举
enum Content {
case Image(ShareableImage)
case Video(ShareableVideo)
}
现在我们来看一个视频和图像的例子。
let media: [Content] = [*a lot of enum cases inside here*]
以上所有代码都不能以任何方式在代码库中进行更改,我需要使用它。
这里开始我的问题:
让我们从媒体的阵列进行过滤,只图像的情况下
let imageOnlyCases: [Content] = media.filter { item -> Bool in
switch item {
case .Image: return true
default: return false
}
}
下一步,我想从枚举的数组得到数组它们的相关值
[Content] -> [ShareableImage] by using map.
所以我做了th是
let shareablemages = imageOnlyCases.map { imageCase -> ShareableImage in
switch imageCase {
case .Image(let image): return image
default: return WHAT TO DO HERE?
}
}
你看,我有一个返回类型的问题..我知道枚举案例都是.Image ..我想要一个简单的地图。但迅捷的语法并没有帮助我。
任何想法?
我会返回零,所以你有一个optionals相关值的数组之后,你可以将它过滤到ged摆脱nil。 – Greg