Posts

Post not yet marked as solved
2 Replies
4.1k Views
import Foundationimport Alamofireenum DataError: Error { case duplicateFailure case nonExistent case incomplete}class CharacterService { func getCharacters(completion: @escaping (Result<Array<Character>, DataError>) -> ()) { let urlString = "https://rickandmortyapi.com/api/character" guard let url = URL(string: urlString) else { return } URLSession.shared.dataTask(with: url) { (data, response, error) in DispatchQueue.main.async { if let error = error { completion(.failure(error)) return } do { let decoder = JSONDecoder() decoder.keyDecodingStrategy = .convertFromSnakeCase decoder.dateDecodingStrategy = .formatted(DateFormatter.iso8601Full) let characterResult = try decoder.decode(CharacterResult.self, from: data ?? Data()) completion(.success(characterResult.characters ?? [])) } catch let jsonError { completion(.failure(jsonError)) } } }.resume() }}
Posted
by Tobz53.
Last updated
.