I am new to iOS development. I am trying to load a JSON, here's my function:
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()
})
})
But I am getting this error:
error not nil::::::
The operation couldn’t be completed. (NSURLErrorDomain error -1002.)
I am able to get the JSON in the browser through the same URL. I have tried reading this Apple Doc, but I can't get the description.
What does this error code mean?
NSURLErrorDomain error -1002
means NSURLErrorUnsupportedURL
or kCFURLErrorUnsupportedURL
. It indicates that a bad URL was provided, in most cases, missing http://
from the URL prefix.
The list of all NSURLErrorDomain
codes can be found here: https://developer.apple.com/documentation/foundation/1508628-url_loading_system_error_codes
In addition to the above answer, one of the reasons why this could happen is,
You might have set the Allow Arbitrary Loads to false
in your Info.plist and the URL you are trying to load is not on a secured server.
The solution to this is either set it to true
, or move to a secure connection i.e https://
.
Hope it helps someone. All the best.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With