我是 iOS 开发的新手。我正在尝试加载 JSON ,这是我的功能:
func loadmyJSON (urlPath: String) {
let url: NSURL = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
println("Task completed")
if(error != nil) {
// If there is an error in the web request, print it to the console
println("error not nil::::::")
println(error.localizedDescription)
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary
if(err != nil) {
// If there is an error parsing JSON, print it to the console
println("JSON Error \(err!.localizedDescription)")
}
let results: NSArray = jsonResult["variants"] as NSArray
dispatch_async(dispatch_get_main_queue(), {
self.jsonTable = results
self.productView!.reloadData()
})
})
但是我收到了这个错误:
error not nil::::::
The operation couldn’t be completed. (NSURLErrorDomain error -1002.)
我可以通过相同的URL在浏览器中获取JSON。 我试过阅读THIS: 但是我无法得到描述。
此错误代码的含义是什么?
答案 0 :(得分:23)
NSURLErrorDomain error -1002
表示NSURLErrorUnsupportedURL
或kCFURLErrorUnsupportedURL
。它表示在大多数情况下提供了错误的URL,从URL前缀中遗漏了http://
。
所有NSURLErrorDomain
代码列表均可在此处找到:https://developer.apple.com/documentation/foundation/1508628-url_loading_system_error_codes
答案 1 :(得分:1)
除了上述答案外,可能发生这种情况的原因之一是,您已将允许任意负载设置为false
Info.plist和您要尝试的URL负载不在安全服务器上。
解决方案是将其设置为yes,或移动到安全连接,即https://
。
希望它可以帮助某人。一切顺利。
答案 2 :(得分:0)
我遇到同样的问题,发现URL中缺少 key 参数。您需要在用于发出请求的URL中为键参数设置 Google地图键值。如果您缺少其他键,可能会发生这种情况。