Неожиданно обнаружен ноль при развертывании необязательного значения при загрузке данных табличного представления - PullRequest
0 голосов
/ 08 мая 2018

У меня есть кнопка и табличное представление, когда я нажимаю на кнопку, будет показано табличное представление и перезагрузите его данные следующим образом:

   @IBAction func citybtn(_ sender: Any) {
    if citydrop.isHidden == false{
        citydrop.isHidden = true
    }else {
        let filtered_shifts = myShifts.filter{$0.regionName == regionbtn.titleLabel?.text}
        for shift in filtered_shifts {
            cities.append(shift.cityName)
            citiesid.append(shift.idCity)
        }
        uniqueCity = Array(Set(cities))
        uniqueCityid = Array(Set(citiesid))
        print(uniqueCity)

        citydrop.isHidden = !citydrop.isHidden
        contdurdrop.isHidden=true
        nationalitydrop.isHidden=true
        regiondrop.isHidden=true

        btn=2
        citydrop.isHidden=false

        item = uniqueCity
        citydrop.reloadData()
    }

}

когда я нажимаю на кнопку города, она всегда вылетает и отображает эту ошибку:

enter image description here

отмечая, что у меня есть значения в uniqueCity ...

[ "Даммам"]

Я делаю то же самое с другой кнопкой, и она работает отлично!

так в чем проблема, почему я получаю эту ошибку?

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

    var cell = DropDownViewCell()

    if (tableView == self.regiondrop){
        cell = regiondrop.dequeueReusableCell(withIdentifier: "dropdowncell") as! DropDownViewCell
        cell.item.text=item[indexPath.row]
        return cell

    }else if (tableView == self.citydrop){
        cell = citydrop.dequeueReusableCell(withIdentifier: "dropdowncell1") as! DropDownViewCell
        cell.item.text=item[indexPath.row]
        return cell

    }else if (tableView == self.contdurdrop){
        cell = contdurdrop.dequeueReusableCell(withIdentifier: "dropdowncell2") as! DropDownViewCell
        cell.item.text=item[indexPath.row]

        return cell

    }else if (tableView == self.nationalitydrop){
        cell = nationalitydrop.dequeueReusableCell(withIdentifier: "dropdowncell3") as! DropDownViewCell
        cell.item.text=item[indexPath.row]
        return cell

    }
    return cell

}

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Это из-за идентификатора. Пожалуйста, выполните следующие действия:

  1. Дать имя идентификатора в свойстве resueidentifer ячейки

  2. Убедитесь, что ячейка зарегистрирована в виде таблицы.

  3. Используйте тот же идентификатор для ячейки, как я вижу в вашем коде, что вы используете другой идентификатор, но ячейка одинакова, пожалуйста, сделайте его одинаковым везде для каждого типа ячейки.

0 голосов
/ 08 мая 2018

Если вы принимаете xib, зарегистрируйте свою ячейку в «Загружен» или возникла проблема с идентификатором dropdowncell1 в таблице. Дважды проверьте идентификатор.

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