在运行Swift 1.2的Xcode 6.3 beta中,我似乎成功地从API中检索了一个JSON对象,但是调试器声称该对象没有属性.API在localhost上运行,并且调用如下:
NSURLConnection.sendAsynchronousRequest( request, queue: queue,
completionHandler: completionHandler )
Run Code Online (Sandbox Code Playgroud)
completionHandler 是一个带断点的闭包:
let completionHandler =
{
( response: NSURLResponse!, data: NSData!, error: NSError! ) -> Void in
// BREAKPOINT HERE
}
Run Code Online (Sandbox Code Playgroud)
调试器显示在Xcode 6.3 beta中使用Swift 1.2 数据:NSData!是一个190字节的ObjectiveC.NSObject但没有属性,这似乎是完全矛盾的.我只是希望JSON数据,我希望隐藏在那些字节中的某个地方.我不知道调试器,或需要为Swift 1.2更新的代码,或者我对事物的理解,或其他东西都应该受到指责.我只想要JSON.
后记
JSON数据一直存在,就像字节数一样,并且得到它非常简单(使用SwiftyJSON):
let json = JSON( data: data )
Run Code Online (Sandbox Code Playgroud)
不过,Xcode 6.3 beta调试器中的属性发生了什么,仍然是一个谜.我不是把它作为我自己问题的答案,因为虽然它有效,但它可能不一定是答案.我对Swift太新了,不知道实际的答案是什么,或者即使有一个答案.
小智 2
NSData 是原始数据字节的封装,然后将其转换为字符串或解析为 JSON。
如果你想查看这些数据包含什么,那么你可以使用 NSJSONSerialization ( let jsonDictionary = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil))
然后像其他任何人一样阅读字典:let value = jsonDictionary["key"]
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
1522 次 |
| 最近记录: |