如何检查 NSAttributed 字符串的两个 NSAttributedString.key 是否相等?
How to check two NSAttributedString.key of a NSAttributed string for equality?
我正在实施一套游戏,其中我的卡片是按钮,其中包含 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 ##
您可以使用 NSAttributedString
实例 func isEqual(to other: NSAttributedString) -> Bool
方法来达到这些目的。
我正在实施一套游戏,其中我的卡片是按钮,其中包含 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 ##
您可以使用 NSAttributedString
实例 func isEqual(to other: NSAttributedString) -> Bool
方法来达到这些目的。