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
]
Другие вопросы по тегам