Когда кнопка нажата, ячейка табличного представления показывает фатальную ошибку - PullRequest
0 голосов
/ 31 марта 2020

Я использую Dynami c Tableview. У меня есть кнопка на панели навигации. При нажатии кнопки в табличном представлении отображается фатальная ошибка. Нулевая строка выполнена успешно, но в первой строке показывается фатальная ошибка. Но первая ячейка индекса будет отображаться в симуляторе.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {


 if tableView == self.onlinediscountmultiarraytableview {
            if  let  cell = onlinediscountmultiarraytableview.dequeueReusableCell(withIdentifier: "MultiOnlinecell", for: indexPath) as? MultiOnlinecell {
                let multidiscount = MultiOnlineservice.instance.multionlinediscountModel[indexPath.row]
                cell.configureCell(multionlineDiscount: multidiscount)
                return cell
            }

        }
        else{
        return UITableViewCell()

        }

    }



@IBAction func savebtnPressed(_ sender: Any) {
if (MultiOnlineservice.instance.multionlinediscountModel.count>0) {
            self.muliarrayvalue = MultiOnlineservice.instance.multionlinediscountModel.count
            print(self.muliarrayvalue)
            for i in 0..<self.muliarrayvalue{
                let index = IndexPath(row: i, section: 0)
                print(index)
                onlinediscountmultiarraytableview.scrollToRow(at: index, at: .middle, animated: true)
               let cell: MultiOnlinecell = self.onlinediscountmultiarraytableview.cellForRow(at: index) as! MultiOnlinecell
                self.setmultionlinecollectiondiscount = cell.multionlinecollectiondiscount.text!
                print(self.setmultionlinecollectiondiscount)

                self.setmultionlinecollectionminimumdiscount = cell.multionlinecollectiondiscountminimum.text!
                print(self.setmultionlinecollectionminimumdiscount)

                if cell.multicollectionpercentage.isSelected == true {
                    self.setmultionlinecollectionpercentcurrencystatus = "%"
                }
                if cell.multicollectioncurrency.isSelected == true{
                    self.setmultionlinecollectionpercentcurrencystatus = ""
                }
}}

}

1 Ответ

0 голосов
/ 31 марта 2020

Проблема в том, что вы пытаетесь присвоить значения nil чему-либо. Вы используете ! в своем коде. Развернуть это сложно. Если вы используете эту отметку, убедитесь, что ваше значение там на 100%. Если вы не уверены, что нужно использовать необязательное развертывание.

Не использовать,

let cell: MultiOnlinecell = self.onlinediscountmultiarraytableview.cellForRow(at: index) as! MultiOnlinecell

Используйте это, это избавить вас от приложения Cra sh

let cell: MultiOnlinecell = self.onlinediscountmultiarraytableview.cellForRow(at: index) as? MultiOnlinecell ?? UITableViewCell()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...