Множественный выбор UITableViewCell не работает

#swift #uitableview #swift5

Вопрос:

Сценарий (Важно):

Я пытаюсь добиться того, чтобы, допустим, было 5 строк, пользователь мог ранжировать их от 1 до 5, выбрав сначала наиболее предпочтительную строку. Допустим, первая строка, выбранная в indexPath.row 2, поэтому в эту строку будет добавлен значок с рангом 1, а затем допустим, что следующий выбор пользователя-номер 4, поэтому рядом с этой строкой будет добавлен ранг 2.

Если пользователь отменяет выбор строки, ранг остальных строк также должен быть обновлен.

Как я это делаю:

Я объявил эти переменные:

     var rankValue = 0
    var accesoryBadge = UILabel()
 

Затем в viewDidLoad я

         self.tableView.allowsMultipleSelection = true
        
        accesoryBadge.textColor = .white
        accesoryBadge.backgroundColor = .systemPink
        accesoryBadge.textAlignment = NSTextAlignment.center
        accesoryBadge.layer.cornerRadius = 10
        accesoryBadge.clipsToBounds = true
 

Внутри didSelectRowAt того, что я

             rankValue = rankValue   1
            accesoryBadge.text = String(rankValue)
            accesoryBadge.frame = CGRect(x: 0, y: 0, width: 20, height: 20)
            
            tableView.selectRow(at: indexPath, animated: true, scrollPosition: .none)
            if let cell = tableView.cellForRow(at: indexPath) {
                cell.accessoryView = accesoryBadge
            }
 

и, наконец, у didDeselectRowAt меня есть

             rankValue = rankValue - 1
            
            tableView.deselectRow(at: indexPath, animated: true)
            if let cell = tableView.cellForRow(at: indexPath) {
                cell.accessoryView = .none
                self.tableView.reloadData()
            }
 

Проблемы:

Когда я выбираю первую строку, я вижу, что она успешно добавляет значок со значением 1 рядом с выбранным значком. Но когда я выбираю вторую ячейку, приложение просто останавливается. Как будто приложение перестает реагировать. Я не могу выбрать или отменить выбор элементов.

Что касается ответа, я был бы очень признателен, если бы общий сценарий был учтен.