0
У меня есть следующая функция для загрузки данных. Функция работала отлично до нескольких дней назад. Приложение аварийно пытается загрузить любой URL-адрес, см. Код ниже и снимок экрана. Кодирование Иоса/Swift всего несколько дней в году, это довольно трудно понять, что случилось ...Приложение внезапное падение загрузки URL
class func loadDataFromURL(_ url: URL, completion:@escaping (_ data: Data?, _ error: NSError?) -> Void) {
let session = URLSession.shared
// Use NSURLSession to get data from an NSURL
let loadDataTask = session.dataTask(with: url, completionHandler: { (data: Data?, response: URLResponse?, error: NSError?) -> Void in
if let responseError = error {
completion(nil, responseError)
} else if let httpResponse = response as? HTTPURLResponse {
if httpResponse.statusCode != 200 {
let statusError = NSError(domain:"com.xyz", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."])
completion(nil, statusError)
} else {
completion(data, nil)
}
}
} as! (Data?, URLResponse?, Error?) -> Void)
loadDataTask.resume()
}
Подпись 'completeHandler'' dataTask' изменяется в Swift 3 так называемым образом. 'let loadDataTask = session.dataTask (с: url) {(данные: данные ?, ответ: URLResponse ?, ошибка: ошибка?) -> Пустота в { }' Нет необходимости добавлять 'как! (Data ?, URLResponse ?, Error?) -> Void) 'в конце –
Знаете ли вы, где * он сработает? Если нет, поместите некоторые точки останова и/или операторы печати после каждой строки, чтобы узнать. Это приближает нас к * почему * он падает. – LinusGeffarth