Swift 3 erreur: [_SwiftValue pointSize] non reconnu sélecteur envoyé à l'instance

Je viens de migré notre projet swift 3 et de voir beaucoup de plantages à cause d'un problème:

Résiliation d'application en raison de uncaught exception 'NSInvalidArgumentException', la raison: '-[_SwiftValue pointSize]: unrecognized sélecteur envoyé à l'instance

La raison de cette erreur est de l'appel à:

[NSAttributedString(NSExtendedStringDrawing) boundingRectWithSize:options:context:]

Ce que j'ai remarqué, c'est que si je lance une Chaîne de NSString et appel boundingRectWithSize sur ce qu'il va jeter l'erreur. Il semble également être le cas dans de nombreuses autres régions, par exemple si j'ai envoyé un view controller titre dans un storyboard, il jette la même erreur.

Toute personne ayant les mêmes problèmes?

Pour reproduire le problème:

Créer une nouvelle Swift 3 projet dans Xcode 8 et ajoutez la ligne suivante dans le 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 dans beaucoup d'autres endroits, comme il semble que UIKit utilise cette méthode en interne dans de nombreuses parties

  • S'il vous plaît montrer votre code à l'origine du problème avec les parties pertinentes.
  • On dirait qu'il est lié à la mise en œuvre interne de NSString
  • Je suis de la même plante, mais pour cela: (textLabel.le texte! comme NSString).taille(attributs: fontAttributes) j'ai tout essayé d'utiliser nsmutablestring, avec l'ajout de chaînes de il etc. il se bloque toujours. C'est des pommes faute sans aucun doute. Vraiment, vraiment mauvais. Ne peut pas migrer.
  • Similaire crash. Qu'est-ce que Apple fait! (Non, je ne suis pas la force d'ôter le "faire" 😉 )
InformationsquelleAutor Leonid | 2016-09-15