Моя функция getWeatherInfo()
извлекает данные из веб-службы погоды, анализирует json и сортирует определенную информацию в моем массиве, info
. После того, как я установил свою функцию, я запустил программу и получил эту ошибку: операция не может быть выполнена. (Ошибка NSURLErrorDomain -1005.) Неустранимая ошибка: неожиданно найден nil при развертывании необязательного значения. Это говорит мне эту ошибку, когда я заявляю о своей переменной jsonResult
Вот код:SWIFT: «Ошибка NSURLDomain -1005» при разборе JSON
var info = [AppModel]()
func getWeatherInfo(completion: (results : NSArray?) ->Void){
let urlPath = "http://api.openweathermap.org/data/2.5/weather?zip=92606,us&units=imperial"
let url: NSURL = NSURL(string: urlPath)!
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url, completionHandler: {data, response, error -> Void in
if error != nil {
// If there is an error in the web request, print it to the console
println(error.localizedDescription)
}
var err: NSError?
var jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as NSDictionary // here is where I recieve my error
if err != nil {
// If there is an error parsing JSON, print it to the console
println("JSON Error \(err!.localizedDescription)")
}
let json = JSON(jsonResult)
var temp = json["main"]["temp"].stringValue
var humidity = json["main"]["humidity"].stringValue
var pressure = json["main"]["pressure"].stringValue
var information = AppModel(temperature: temp, pressure: pressure, humidity: humidity)
println(information)
self.info.append(information)
completion(results: self.info)
})
task.resume()
}
override func viewDidLoad() {
super.viewDidLoad()
getWeatherInfo{ (info) in
println(info)
}
}
Это работает отлично, прежде чем в прошлом, и я был успешно получить данные от веб-службы и сортировки информации в моем массиве , Может ли кто-нибудь указать мне в правильном направлении, как я могу это исправить?
Так что объясните, что изменилось. Вы переключились на Xcode 7? Вы переключились на iOS 9? Какие? – matt
Единственные изменения, которые я сделал, это код, который я добавил в viewDidLoad(), 'getWeatherInfo {(info) в println (info) }' Кроме этого ничего. – videoperson