Swift 3-Fehler: [_SwiftValue pointSize] nicht erkannter Selektor an Instanz gesendet

Ich habe gerade unser Projekt auf Swift 3 migriert und sehe viele Abstürze aufgrund eines Problems:

App wird aufgrund einer nicht erfassten Ausnahme 'NSInvalidArgumentException' beendet, Grund: '- [_SwiftValue pointSize]: Unbekannter Selektor an Instanz gesendet

Der Grund für diesen Fehler ist der Aufruf an:

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

Was mir aufgefallen ist, ist, dass wenn ich String in NSString umwandle und @ aufruboundingRectWithSize darauf wirft es diesen Fehler. Es scheint auch in vielen anderen Bereichen zu passieren, zum Beispiel wenn ich einen View-Controller-Titel in einem Storyboard gesendet habe, wird derselbe Fehler ausgegeben.

Hat jemand die gleichen Probleme?

Um das Problem zu reproduzieren:

Erstelle ein neues Swift 3-Projekt in Xcode 8 und füge die folgende Zeile in viewDidLoad hinzu:

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)

Aber wie gesagt, es stürzt an vielen anderen Stellen ab, da UIKit diese Methode anscheinend an vielen Stellen intern verwendet.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage