Попытка заполнить табличное представление данными JSON.Получение tableview = UITableView?ноль нет - PullRequest
0 голосов
/ 11 октября 2018

Я получаю

Тема 1: Неустранимая ошибка: неожиданно обнаружен ноль при развертывании Необязательное значение

в DispatchQueue.main.async{ self.tableView.reloadData() }

Мой код

import UIKit

class BrowseRequestsViewController: UIViewController, UITableViewDelegate,UITableViewDataSource {

    final let url = URL(string: "")

    private var browseRequestDataModel = [Datum]()

    @IBOutlet var tableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()
        downloadJson()
    }

    func downloadJson() {
        guard let downloadURL = url else { return }
        URLSession.shared.dataTask(with: downloadURL) { data, urlResponse, error in
            guard let data = data, error == nil, urlResponse != nil else {
                print("something is wrong")
                return
            }
            print("downloaded")
            do {
                let decoder = JSONDecoder()
                let downloadedBrowseRequestData = try decoder.decode(BrowseRequestsDataModel.self, from: data)
                self.browseRequestDataModel = downloadedBrowseRequestData.data
                DispatchQueue.main.async {
                    self.tableView.reloadData()
                }
            } catch {
                print("something wrong after downloaded")
            }
        }.resume()
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return browseRequestDataModel.count
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell = tableView.dequeueReusableCell(withIdentifier: "BrowseRequestsTableViewCell" ) as? BrowseRequestsTableViewCell else { return UITableViewCell() }

        cell.shipperName.text = browseRequestDataModel[indexPath.row].user.name
        cell.pickupLocation.text = browseRequestDataModel[indexPath.row].pickupLocation.pickupLocationCity + " , " + browseRequestDataModel[indexPath.row].pickupLocation.pickupLocationCountry
        cell.dropoffLocation.text = browseRequestDataModel[indexPath.row].dropoffLocation.dropoffLocationCity + " , " + browseRequestDataModel[indexPath.row].dropoffLocation.dropoffLocationCountry
        cell.item.text = browseRequestDataModel[indexPath.row].item.name
        cell.pickupDate.text = browseRequestDataModel[indexPath.row].pickupDate
        cell.dropoffDate.text = browseRequestDataModel[indexPath.row].dropoffDate

        return cell
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...