title: Swift can print AnyObject, but can't create String from AnyObject
body: <p>I have two almost identical sections of code that are puzzling me. Both are functioning in ways that surprise me. The first works, as shown here:</p>
  
  <pre><code>let HTTPBody = NSJSONSerialization.dataWithJSONObject(jsonDict, options: NSJSONWritingOptions.PrettyPrinted, error: &amp;jsonError)
  let jsonObj : AnyObject! = NSJSONSerialization.JSONObjectWithData(HTTPBody, options: NSJSONReadingOptions.MutableLeaves, error: &amp;jsonError2)
  println(jsonObj)
  </code></pre>
  
  <p>which prints the JSON Object as a string</p>
  
  <pre><code>{
  button =     {
      name = test;
      "price_currency_iso" = USD;
      "price_string" = "0.20";
  };
  </code></pre>
  
  <p>}</p>
  
  <p>The other section of code, which doesn't work as expected</p>
  
  <pre><code> let HTTPBody = NSJSONSerialization.dataWithJSONObject(jsonDict, options: NSJSONWritingOptions.PrettyPrinted, error: &amp;jsonError)
  let jsonObj : AnyObject! = NSJSONSerialization.JSONObjectWithData(HTTPBody, options: NSJSONReadingOptions.MutableLeaves, error: &amp;jsonError2)
  let jsonData = jsonObj as? NSData
  jsonString = NSString(data: jsonData, encoding: NSUTF8StringEncoding)
  println(jsonString)
  </code></pre>
  
  <p>which just prints out a blank line, which means "jsonString" is an empty string.</p>
  
  <p>How does Xcode know to and is able to convert the AnyObject! into a string when using println, but it fails to create a NSString object from the AnyObject! at the same time?</p>