в симуляторе не показывает View Controller при API запросе

только начинаю изучать Swift и возникла такая проблема.

код API запроса

    case noData
}

protocol ApiClient {
    func getUsers(completion: @escaping (Result<[User], Error>) -> Void)
}

class ApiClientImpl: ApiClient {
    func getUsers(completion: @escaping (Result<[User], Error>) -> Void) {
        let session = URLSession.shared
        
        let url = URL(string: "https://jsonplaceholder.typicode.com/users/")!
        let request = URLRequest(url: url)
        
        let task = session.dataTask(with: request, completionHandler: { data, response, error in
            
            guard let data = data else {
                completion(.failure(ApiError.noData))
                return
            }

            let decoder = JSONDecoder()
                do {
                    let response = try decoder.decode(UsersResponse.self, from: data)
                    completion(.success(response.data))
                } catch(let error) {
                    completion(.failure(error))
                }
        })
                                              
        task.resume()
    }
}


код ViewConroller:

@IBOutlet weak var tableView: UITableView!
    
    var users: [User] = []
    
    let apiClient: ApiClient = ApiClientImpl()
    
    override func viewDidLoad() {
        super.viewDidLoad()
        navigationController?.navigationBar.prefersLargeTitles = true
        apiClient.getUsers(completion: {result in
            DispatchQueue.main.async {
                switch result {
                case .success(let users):
                    self.users = users
                    self.tableView.reloadData()
                case.failure:
                    self.users = []
                    self.tableView.reloadData()
                }
            }
        })
    }
    
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return users.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "UserCell", for: indexPath)
        
        let user = users[indexPath.row]
        
        cell.textLabel?.text = user.name

        return cell
    }
    
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let storyboard = UIStoryboard(name: "Main", bundle: .main)
        let viewController = storyboard.instantiateViewController(withIdentifier: "UsersDetailsViewController") as! UsersDetailsViewController
        
        let user = users[indexPath.row]
        viewController.user = user
        navigationController?.pushViewController(viewController, animated: true)
}
}

Ответы (0 шт):