Двоичный оператор ‘>’ не может быть применен к двум ‘Int?’ При попытке сортировки

#ios #swift #sorting

#iOS #swift #сортировка

Вопрос:

Я пытаюсь отсортировать 2D-массив пользовательской структуры, id необязательно, но когда я пытаюсь их развернуть, я получаю другую ошибку: Cannot assign value of type '()' to subscript of type '[SomeObject]'

 for x in 0..<tableData.count {
   tableData[x] = tableData[x].sort(by: {$0.id! > $1.id!})
}
  

Что я могу здесь сделать?

Комментарии:

1. Измените sort на sorted

Ответ №1:

sort является мутирующим методом и сортирует коллекцию на месте, т. Е. тип возвращаемого значения этого метода Void .

Таким образом, нет необходимости сохранять результат sort обратно в tableData , т.Е.

 for x in 0..<tableData.count {
    tableData[x].sort(by: {$0.id! > $1.id!})
}
  

Убедитесь, что tableData это var .