相关疑难解决方法(0)

使用关联值映射swift枚举

假设我们有一个带有相关值类型的枚举.在下面的示例中,两个值类型是包含图像的简单对象和要共享的URL.

enum Content {
  case Image(ShareableImage)
  case Video(ShareableVideo)
}
Run Code Online (Sandbox Code Playgroud)

现在让我们来看一系列视频和图像案例.

let media: [Content] = [*a lot of enum cases inside here*]  
Run Code Online (Sandbox Code Playgroud)

到目前为止,上面的所有代码都无法在代码库中以任何方式进行更改,我需要使用它.


这开始我的问题:

让我们用媒体过滤数组,只对图像情况进行过滤

    let imageOnlyCases: [Content] = media.filter { item -> Bool in

        switch item {
        case .Image: return true
        default: return false
        }
    }
Run Code Online (Sandbox Code Playgroud)

下一步,我想从枚举数组获取其关联值的数组

[Content] -> [ShareableImage] by using map.
Run Code Online (Sandbox Code Playgroud)

所以我这样做

    let shareablemages = imageOnlyCases.map { imageCase -> ShareableImage in

        switch imageCase {

        case .Image(let image): return image
        default: return  WHAT TO DO HERE?
        }
    }
Run Code Online (Sandbox Code Playgroud)

你看,我有一个返回类型的问题..我知道枚举案例都是.Image …

arrays enums swift

7
推荐指数
1
解决办法
5095
查看次数

标签 统计

arrays ×1

enums ×1

swift ×1