ios - 为什么 Xcode 6.3 beta 调试器会显示 Swift NSData 的字节数为 190 但没有属性?

标签 ios xcode swift

在运行 Swift 1.2 的 Xcode 6.3 beta 中,我似乎成功地从 API 检索了一个 JSON 对象,但调试器声称该对象没有属性。 API 在本地主机上运行,​​调用方式如下:

  NSURLConnection.sendAsynchronousRequest( request, queue: queue,
    completionHandler: completionHandler )

completionHandler 是一个带有断点的闭包:

let completionHandler =
{
  ( response: NSURLResponse!, data: NSData!, error: NSError! ) -> Void in
  // BREAKPOINT HERE
}

调试器显示在带有 Swift 1.2 的 Xcode 6.3 beta 中 data: NSData! 是一个 190 字节但没有属性的 ObjectiveC.NSObject,这看起来完全矛盾。我只是想要我希望隐藏在这些字节中某处的 JSON 数据。我不知道调试器,或者需要为 Swift 1.2 更新的代码,或者我对事物的理解,或者其他什么是罪魁祸首。我只想要 JSON。

后记

JSON 数据一直存在,正如字节数所暗示的那样,获取它非常简单(使用 SwiftyJSON):

let json = JSON( data: data )

Xcode 6.3 beta 调试器中的属性到底发生了什么仍然是个谜。我不会将此添加为我自己问题的答案,因为虽然它有效,但不一定是答案。我对 Swift 还很陌生,不知道实际答案可能是什么,即使有也不知道。

最佳答案

NSData 是原始数据字节的封装,在它被翻译成字符串或解析为 JSON 之前。

如果你想看看这个数据包含什么,那么你可以使用 NSJSONSerialization (let jsonDictionary = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil))

然后像阅读其他字典一样阅读字典:let value = jsonDictionary["key"]

希望对您有所帮助。

关于ios - 为什么 Xcode 6.3 beta 调试器会显示 Swift NSData 的字节数为 190 但没有属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29448953/

相关文章:

ios - 如何在 Swift 中从 textFieldDidEndEditing 调用 NSManagedObject validateValue

ios - 使用 GCD 和代码重用 : avoiding re-entrant code deadlock

ios - XCode 4.5.2 : How to reconcile "Failed to attach to process ID 0" with the need for a Resources folder?

ios - 链接器命令失败,退出代码为 1(使用 -v 查看调用)xcode firebase

ios - 如何在 SwiftUI 中设置清晰/透明背景的导航栏?

ios - 在 swift 中设置 UILabel.text 时的 EXC_BAD_INSTRUCTION

iOS 如何在应用程序未运行时处理 FCM

iphone - 在构建期间在包中创建目录

ios - 使位于按钮 1 下方的按钮 1 的底部边缘和按钮 2 的顶部边缘垂直居中对齐?

ios - Swift 函数显示编译错误 "ambiguous without more context"