美文网首页
swift 2.0中写optional String 的 Ext

swift 2.0中写optional String 的 Ext

作者: 有点精分 | 来源:发表于2016-03-09 10:30 被阅读282次

在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

相关文章

网友评论

      本文标题:swift 2.0中写optional String 的 Ext

      本文链接:https://www.haomeiwen.com/subject/uowzkttx.html