在swift中,字符串拼接很简单
var a: String? = "aaa"
var b: String? = "bbb"
let newStr = a! + b!
因为使用 ! 来获取一个不存在的可选值会导致直接崩溃,使用!来强制解析值之前,一定要确定可选包含一个非nil的值。
但是在有些时候可选变量不是一定存在的,因此可以写一个 Extension 来判断 optional String 是否为空.
protocol OptionalString {}
extension String: OptionalString {}
extension Optional where Wrapped: OptionalString {
var isNilOrEmpty: Bool {
return ((self as? String) ?? "").isEmpty
}
/**如果字符串存在,返回自己,如果不存在,返回参数*/
func existOrReplaced(replace: String) -> String {
return ((self as? String) ?? replace)
}
}
这样就可以使用自己写的Extension来判断optional String是否存在
var a: String? = "aaa"
var b: String?
print(b.isNilOrEmpty)
let newStr = a.existOrReplaced("a变量") + b.existOrReplaced("b变量")
----------------2016年04月27日分割线-------------
感觉自己太蠢了,swift有自带的方式,也记录下来吧
var b: String?
let newStr = (b ?? "b变量不存在") + (b ?? "b变量不存在")
来源StackOverFlow:
http://stackoverflow.com/questions/29381994/swift-check-string-for-nil-empty/33007282#33007282