CFString не соответствует протоколу Hashable?
Я недавно обновился до Xcode 6.1, чтобы иметь возможность работать с iOS 8.1, но теперь мой последний проект столкнулся с ошибкой.
Я получаю сообщение об ошибке "CFString! Не соответствует протоколу Hashable" для следующей строки:
let attributes = [kCTForegroundColorAttributeName:UIColor.blackColor().CGColor, kCTFontAttributeName: font]
Я не получил эту ошибку при запуске Xcode 6.0.1. А также, Xcode 6.1 очень медленный. Я имею в виду, так медленно, что на самом деле ничего не заканчивает загрузку. Индексирование занимает несколько минут, а сборка занимает столько времени, что мне не удавалось смириться... Это тоже дает сбой.
Моя главная проблема с протоколом Hashable, хотя. Что с этим?
1 ответ
Похоже, что это ошибка вывода типа со словарями, содержащими объекты CF.
Компилятор (очевидно) использует первую пару ключ / значение для вывода словаря типа [CFStringRef:CGColorRef]
, а затем не может скомпилировать, потому что CFStringRef
не соответствует Hashable
,
Вы можете обойти проблему, явно объявив тип словаря:
let attributes : [String:AnyObject] = [
kCTForegroundColorAttributeName:UIColor.blackColor().CGColor,
kCTFontAttributeName:font
]