如何检查一个NSAttributed字符串的两个NSAttributedString.key是否相等?

时间:2019-04-06 05:19:04

标签: swift4.2 nsattributedstringkey

我正在实施一个固定游戏,其中我的牌是由NSAttributedString作为属性标题组成的按钮。为了检查是否选择了三张卡片,我想比较每个属性字符串(按钮上的标题)的属性,因为每个属性都代表一个属性。无法进行此操作,因为在比较它们时出现编译错误。

let at: [NSAttributedString.Key : Any] = [
            .strokeColor : UIColor.blue,
            .foregroundColor : UIColor.white,
            .strokeWidth : -7.0,
            .font : UIFont.systemFont(ofSize: 35)
        ]

let s = NSAttributedString(string: "●", attributes: at)
        let attribute: [NSAttributedString.Key : Any] = [
            .strokeColor : UIColor.blue,
            .foregroundColor : UIColor.white,
            .strokeWidth : -7.0,
            .font : UIFont.systemFont(ofSize: 35)
        ]
let a = NSAttributedString(string: "▲", attributes: attribute)

if(s.attributes(at: 0, effectiveRange: nil) & (a.attributes(at: 0, effectiveRange: nil)) // ## Compilation Error: Any doesn't conform to Eqautable Protocol ##

1 个答案:

答案 0 :(得分:0)

您可以将 NSAttributedString 实例 func isEqual(to other: NSAttributedString) -> Bool 方法用于这些目的。