title: Swift 3 error: [_SwiftValue pointSize] unrecognized selector sent to instance
body: <p>I just migrated our project to swift 3 and see lots of crashes because of one issue:</p>
  
  <p><em>Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[_SwiftValue pointSize]: unrecognized selector sent to instance</em></p>
  
  <p>The reason for that error is the call to:</p>
  
  <pre><code>[NSAttributedString(NSExtendedStringDrawing) boundingRectWithSize:options:context:]
  </code></pre>
  
  <p>What I noticed is that if I cast String to NSString and call <code>boundingRectWithSize</code> on it it will throw that error. It also seems to be happening in many other parts, for example if I sent a view controller title in a storyboard it throws the same error.</p>
  
  <p>Anyone having the same problems?</p>
  
  <p><strong>To reproduce the problem:</strong></p>
  
  <p>Create a new Swift 3 project in Xcode 8 and add the following line in viewDidLoad:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>But as I said it crashes in many other places as it seems that UIKit uses this method internally in many parts</p>