连接字符串的枚举

时间:2015-04-01 05:36:44

标签: ios swift

下面有2个枚举。

CONFIG_URLS.BASE_URL 

CONFIG_URLS.URL1

这些枚举中的每一个都指向一个字符串。

我想通过连接BASE_URLURL1来创建字符串变量。 应该是快捷的代码。 有人可以帮忙吗?非常感谢

3 个答案:

答案 0 :(得分:5)

我假设你的枚举有一个string类型的原始值。在这种情况下,我建议创建一个静态函数,给定枚举大小写返回一个绝对URL,通过附加表示基本URL值的路径的大小写的值来获得:

enum CONFIG_URLS : String {
    case BASE_URL = "http://www.myurl.com"
    case URL1 = "/some/path"

    static func getUrl(url: CONFIG_URLS) -> String {
        switch url {
        case .BASE_URL:
            return BASE_URL.rawValue

        default:
            return "\(CONFIG_URLS.BASE_URL.rawValue)\(url.rawValue)"
        }
    }
}

println(CONFIG_URLS.getUrl(.BASE_URL))
println(CONFIG_URLS.getUrl(.URL1))

或者,可以将静态方法转换为以类似方式使用的属性:

enum CONFIG_URLS : String {
    case BASE_URL = "http://www.myurl.com"
    case URL1 = "/some/path"

    var url: String {
        switch self {
        case .BASE_URL:
            return BASE_URL.rawValue

        default:
            return "\(CONFIG_URLS.BASE_URL.rawValue)\(self.rawValue)"
        }
    }
}

println(CONFIG_URLS.BASE_URL.url)
println(CONFIG_URLS.URL1.url)

答案 1 :(得分:2)

Swift提供以下选项。

选项1

您可以连接两个常量字符串,如下所示:

let str1 = "hi"  // constant
let str2 = " how are u" // constant 
var str3 = string1 + string2 // here str3 is variable which will hold
                             // the concatenated value i.e. str3 = "hi how are u"

选项2

您还可以使用添加赋值运算符(+=)将String值附加到现有String变量:

let str1 = "hi" 
var str2 = "how are u"
str2 += str1
// str2 now equals "hi how are u"

答案 2 :(得分:0)

解决方案是使用rawValue并使用+进行连接(在Swift中),我对枚举没有意识到这一点。 谢谢大家。