iOSアプリデバッグ中に以下のエラーメッセージでアプリが落ちた。
*** Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[_SwiftTypePreservingNSNumber renderingMode]: unrecognized selector sent to instance 0x600000231680’
結局、attributesに設定した値を間違ってセットしていたのが原因だった。
具体的には、NSStringのboundingRect(…メソッドの中のattributesに対して、NSFontAttributeNameを指定していたのだが、その値を、UIFontじゃなくて、CGFloatを渡してしまっていた。
1 2 3 4 5 6 7 |
let size = nsstring.boundingRect(with: estimateSize, options: NSStringDrawingOptions.usesLineFragmentOrigin, //誤ったコード。fontSizeはCGFloatの値 attributes: [NSFontAttributeName: fontSize], // 正しいコードはコチラ // attributes: [NSFontAttributeName: UIFont.systemFont(ofSize: fontSize)], context: nil).size |
てへぺろ。
コメント