下面有2个枚举。
CONFIG_URLS.BASE_URL
CONFIG_URLS.URL1
这些枚举中的每一个都指向一个字符串。
我想通过连接BASE_URL
和URL1
来创建字符串变量。
应该是快捷的代码。
有人可以帮忙吗?非常感谢
答案 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中),我对枚举没有意识到这一点。 谢谢大家。