Ошибка Swift 3: [_SwiftValue pointSize] нераспознанный селектор отправлен на экземпляр
Я только что перенес наш проект в swift 3 и вижу много сбоев из-за одной проблемы:
Завершение работы приложения из-за необработанного исключения «NSInvalidArgumentException», причина: «- [_ SwiftValue pointSize]: нераспознанный селектор, отправленный экземпляру
Причиной этой ошибки является обращение к:
[NSAttributedString(NSExtendedStringDrawing) boundingRectWithSize:options:context:]
Я заметил, что если я приведу String к NSString и вызовуboundingRectWithSize
на это он выбросит эту ошибку. Похоже, что это происходит во многих других частях, например, если я отправляю заголовок контроллера представления в раскадровке, он выдает ту же ошибку.
У кого-то есть такие же проблемы?
Чтобы воспроизвести проблему:
Создайте новый проект Swift 3 в Xcode 8 и добавьте следующую строку в viewDidLoad:
let attributes: [String: AnyObject?] = [
NSFontAttributeName: UIFont.systemFont(ofSize: 14)
]
let boundingRect = ("hello" as NSString).boundingRect(with: CGSize(width: 100, height: 100), options: .usesLineFragmentOrigin, attributes: attributes, context: nil)
Но, как я уже сказал, во многих других местах происходит сбой, так как кажется, что UIKit использует этот метод внутренне во многих частях.