gpt4 book ai didi

ios - 尝试在 Swift 中将有效的 JSON 数据从 NSURLConnection 转换为 NSDictonary 时发生崩溃/错误

转载 作者:搜寻专家 更新时间:2023-10-31 22:09:12 24 4
gpt4 key购买 nike

我一直在尝试让一个示例 Rest 请求在我正在处理的示例 swift iOS 应用程序上运行。我从一些我看到的教程中提取了说明这有效但我的应用程序似乎崩溃了

 var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary

swift_dynamicCast 库中抛出异常。我可以毫无问题地将我的响应转换为字符串,并且该字符串是一个有效的 json 数组。有什么想法吗?

这是我的测试函数的完整代码。

    let url:NSURL = NSURL(string:"http://jsonplaceholder.typicode.com/comments")
let request:NSURLRequest = NSURLRequest(URL:url)
let queue:NSOperationQueue = NSOperationQueue()
NSURLConnection.sendAsynchronousRequest(request, queue: queue, completionHandler:{ (response: NSURLResponse!, data: NSData!, error: NSError!) -> Void in

var stringData :NSString = NSString(data:data, encoding:NSUTF8StringEncoding)
println(stringData)
var err: NSError?

var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary

if(err?) {
println("JSON Error (err!.localizedDescription)")
}

println("AsSynchronous\(jsonResult)")


})

最佳答案

改变

var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary

   if let jsonResult: AnyObject = NSJSONSerialization.JSONObjectWithData(data,options:nil,error: nil) {
if jsonResult is NSDictionary {
var myDict: NSDictionary = jsonResult as NSDictionary
println("myDict:\(myDict)")
}
else if jsonResult is NSArray {
var myArray: NSArray = jsonResult as NSArray
println("myArray:\(myArray)")

}
}

一切正常。它能够将其解析为 NSArray 而不是 NSDictonary。根据堆栈溢出聊天中的代码,我现在拥有的代码将适用于 Http 请求返回的 JSON 数组和 JSON 对象。

关于ios - 尝试在 Swift 中将有效的 JSON 数据从 NSURLConnection 转换为 NSDictonary 时发生崩溃/错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24419243/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com