TableView не перезагружает данные и иногда перезагружает данные при попытке использовать точки останова - PullRequest
0 голосов
/ 14 апреля 2020

Это некоторый API Fetch Code, и он успешно возвращает данные, но reloadData() вызывается только когда я устанавливаю точки останова. Если я удаляю точки останова, он просто выводит UIView под моим табличным представлением в отладчике представления вместо моих пользовательских ячеек. (Жилье для размещения)

API.shared.fetchAccomodations(completion: { (accResponse, error) in
    if let err = error {
        print("Failed to fetch accommodation information ::" , err.localizedDescription)
    }
    if let response = accResponse {
        self.accomodationsData = response
        DispatchQueue.main.async {
            print(self.accomodationsData.count, self.accomodationsData)
            self.tableView.reloadData()                
        }            
    }        
}, tokenURL: accomodationsURL)

Я использую две таблицы. Это методы табличного представления, где я использую if else для обоих табличных представлений.

if tableView == courseInfoTableView {
    return numberOfCourses
}
else {
    return accomodationsData.count
}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if tableView ==  courseInfoTableView {
        if let cell = tableView.dequeueReusableCell(withIdentifier: "courseCell", for: indexPath) as? CourseInfoCell {
            cell.durationLabel.text = "General English"
            cell.durationLbl.text = "1-4 Weeks"
            cell.priceLbl.text = "1500 SAR" 
        } else if tableView == self.tableView {
            if let cell = tableView.dequeueReusableCell(withIdentifier: "AccomodationCell", for: indexPath) as? AccomodationCell {
                cell.titleLabel.text = AccomodationsData[indexPath.row].residenceName
                cell.subtitleLabel.text = AccomodationsData[indexPath.row].residenceType            
                cell.bedImage.image = #imageLiteral(resourceName: "DoubleBed")
                return cell
            }
        }                    
    }                
    return UITableViewCell()                
}

При запуске я устанавливаю оба ограничения высоты табличных представлений программно, потому что они находятся в представлении прокрутки.

override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    tableViewHeight.constant = tableView.contentSize.height
    InfoTVHeight.constant = courseInfoTableView.contentSize.height                
}
...