URLSession.shared.dataTask(with: url) { data, response, error in
guard let data = data, error == nil else {
if let error = error as NSError?, error.domain == NSURLErrorDomain {
completion(.failure(.domainError))
}
return
}
do {
let posts = try JSONDecoder().decode([Post].self, from: data)
completion(.success(posts))
} catch {
completion(.failure(.decodingError))
}
}.resume()
}
Подскажите, пожалуйста, как обращаться с Result в плане потоков?
Вызывая из главного потока эту функцию нужно ее посылать на другой?
И нужно ли потом result посылать обратно в главный, если нужно что-то обновить в UI?
Наверное ты имеешь ввиду как обращаться с 'completion', ибо Result тут просто обвертка для данных. по поводу вызова - если по простому, то можешь вызывать на главном, все ок. Да, в completion тебе нужно в какой-то момент перейти на главный поток, желательно!, если хочешь обновить UI.
Обсуждают сегодня