Je viens de migrer notre projet vers swift 3 et je vois beaucoup de plantages à cause d'un problème :
Fermeture de l'application en raison de l'exception 'NSInvalidArgumentException', reason : '-[_SwiftValue pointSize] : unrecognized selector sent to instance'.
La raison de cette erreur est l'appel à :
[NSAttributedString(NSExtendedStringDrawing) boundingRectWithSize:options:context:]
Ce que j'ai remarqué, c'est que si je transforme String en NSString et que j'appelle boundingRectWithSize
sur elle, cette erreur se produira. Cela semble également se produire dans de nombreuses autres parties, par exemple si j'envoie un titre de contrôleur de vue dans un storyboard, la même erreur se produit.
Quelqu'un a les mêmes problèmes ?
Pour reproduire le problème :
Créez un nouveau projet Swift 3 dans Xcode 8 et ajoutez la ligne suivante dans 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)
Mais comme je l'ai dit, il se bloque à de nombreux autres endroits car il semble que UIKit utilise cette méthode en interne dans de nombreux endroits.