比较 Swift 字符串和 NSAttributedString

Compare Swift String and NSAttributedString

如何比较 NSAttributedString 和 Swift 字符串,使得:

let string = "test string"
let attributedString = NSAttributedString(string: string)
let areStringsEqual = attributedString == string

将编译。

这是一个使用相等运算符的 NSAttributedString 扩展的答案:

extension NSAttributedString {

    static func ==(lhs: NSAttributedString, rhs: String) -> Bool {
        return lhs.string == rhs
    }
}

两种方式:

第一

改变

attributedString == string

attributedString.string == string

第二

将此添加到您的代码中:

//for attributed.string == string
func ==(lhs: NSAttributedString, rhs: String) -> Bool {
    return lhs.string == rhs
}

//for string == attributed.string
func ==(lhs: String, rhs: NSAttributedString) -> Bool {
    return lhs = rhs.string
}