Swift将枚举/结构嵌套为相反顺序的字符串

时间:2018-07-23 13:44:36

标签: swift string struct enums

在UserDefaults或任何其他服务中使用字符串键时,通常的做法是使用“。”分隔的单词来构建我的键。例如:

"com.domain.subdomain.scope.key"

有时候,我们在同一个作用域中有多个键名,在同一个子域中(或我们要使用的任何措辞)有多个作用域。

从建模的角度来看,可以使用Structs或Enums对其进行轻松建模:

struct Domain {
    struct SubdomainA {
        enum ScopeA {
            case keyA
            case keyB
            case keyC
            [...]
        }
        enum ScopeB {
            case keyA
            case keyB
            case keyC
            [...]
        }
        [...] // ScopeC
    }
    [...] // SubdomainB
}

在编写类似以下内容时能够运行自动完成功能:

let key = Domain.SubdomainB.ScopeC.keyB

请注意,key的类型为Domain.SubdomainB.ScopeC

问题

有没有简单的方法可以使用枚举或结构来使用此代码结构,然后有一种将整个内容转换为字符串的方法?

例如,假设有一个名为reverseStringValue的方法可以完成此工作:

let key = Domain.SubdomainB.ScopeC.keyB.reverseStringValue

请注意,这一次我们希望keyString,并且此字符串的每个组成部分(“。”之间的单词)都是由链的每个结构/枚举递归定义的。

您将如何处理? (不会过于复杂)。

谢谢!

0 个答案:

没有答案