Как проверить два NSAttributedString.key строки NSAttributed на равенство? - PullRequest
1 голос
/ 06 апреля 2019

Я реализую сет-игру, в которой мои карты представляют собой кнопки, которые состоят из 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 ##
...