Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift中非文字值的枚举大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

有没有办法将像字典元组这样的非文字值映射到枚举?以下代码将为枚举抛出Raw值必须是文字. enum FileType { case VIDEO = ["name": "Video", "contentTypeMatcher": "video/"] case IMAGE = ["name": "Image", "contentTypeMatcher": "image/"] c
有没有办法将像字典元组这样的非文字值映射到枚举?以下代码将为枚举抛出Raw值必须是文字.
enum FileType {
    case VIDEO = ["name": "Video","contentTypeMatcher": "video/"]
    case IMAGE = ["name": "Image","contentTypeMatcher": "image/"]
    case AUdio = ["name": "Audio","contentTypeMatcher": "aduio/"]
    case PDF   = ["name": "PDF","contentTypeMatcher":"application/pdf"]
    case TEXT  = ["name": "Text","contentTypeMatcher": "text/"]
    case FOLDER= ["name": "Folder","contentTypeMatcher" :"application/x-directory"]
    case PLAIN = ["name": "Plain","contentTypeMatcher": ""]
}

当我使用元组时,它是一样的:

enum FileType {
    case VIDEO  = (name: "Video",contentTypeMatcher: "video/")
    case IMAGE  = (name: "Image",contentTypeMatcher: "image/")
    case AUdio  = (name: "Audio",contentTypeMatcher: "aduio/")
    case PDF    = (name: "PDF",contentTypeMatcher:"application/pdf")
    case TEXT   = (name: "Text",contentTypeMatcher: "text/")
    case FOLDER = (name: "Folder",contentTypeMatcher :"application/x-directory")
    case PLAIN  = (name: "Plain",contentTypeMatcher: "")
}
在谈到 Enumeration Declaration时,语言参考明确指出:

除了文字之外别无其他可以用作原始值.

一种可能的解决方法是将字典表示为字符串 – 例如,您可以使用逗号分隔元素,使用冒号来键入值:

enum FileType : String {
    case VIDEO = "name:Video,contentTypeMatcher:video/"
    case IMAGE = "name:Image,contentTypeMatcher:image/"
    ...
}

然后,使用计算属性(或您喜欢的方法),重建字典:

var dictValue: [String : String] {
    var dict = [String : String]()

    var elements = self.rawValue.componentsSeparatedByString(",")
    for element in elements {
        var parts = element.componentsSeparatedByString(":")
        if parts.count == 2 {
            dict[parts[0]] = parts[1]
        }
    }

    return dict
}

大佬总结

以上是大佬教程为你收集整理的Swift中非文字值的枚举全部内容,希望文章能够帮你解决Swift中非文字值的枚举所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: