После обновления Xcode до 6.1 я получаю пару ошибок компилятора для моего существующего проекта.XCode 6.1 NSString.boundingRectWithSize Ошибка компиляции
я определил атрибуты как
let styleAttriutes = [
NSFontAttributeName : UIFont(...),
NSForgeroundColorAttributeName : UIColor.blackColor()
]
Ошибка: «Не удалось найти перегрузку„инициализации“, который принимает переданные аргументы»
Поэтому я объявил INFERRED словарь явное добавление : [ NSString: Any], поскольку все ключевые константы имеют тип NSString
, и мы имеем разные значения: UIFont
/UIColor
и AnyObject
также не допускается.
let styleAttriutes : [NSString : Any] = [ ...
Теперь компилятор счастлив в этом пункте.
Определенная attribues используются в
text.boundingRectWithSize(size: CGSize, options: NSStringDrawingOptions, attributes: [NSObject : AnyObject!], context: NSStringDrawingContext!)
Поскольку атрибуты типа [NSObject:AnyObject!]
, как ожидается, но я передаю attribues типа [NSString : Any]
компилятор жалуется:
Ошибка: «NSString" не идентичный «NSObject» «
Я попытался использовать его, используя attributes as [NSObject : AnyObject]
, но затем получаю ошибку времени выполнения.
Неустранимая ошибка: «Невозможно небезопасноBitCast между типами разностей размеров».
Любые предложения?
Принято! Ты герой! Благодарю. – David
Боже, это так запутанно. Компилятор сообщает о таких смешных ошибках! Благодаря! – Andy