Как конвертировать [Int] в int? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть такой код

let index = tableView.selectedRowIndexes.map { Int($0) }
        arrDomains.remove(at: index)

Но получена ошибка:

Невозможно преобразовать значение типа '[Int]' в ожидаемый тип аргумента 'Int'

Как конвертировать [Int] в int?

Swift 4, macOS

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Индекс es - это множественное число, означающее, что имеется несколько значений

selectedRowIndexes возвращает объект IndexSet.Вы можете использовать forEach, но вам придется обратить индексы в обратном порядке, в противном случае вы получите известную ошибку Мутирование при выполнении итерации вне диапазона .

let indexes = tableView.selectedRowIndexes
indexes.reversed().forEach{ arrDomains.remove(at: $0) }

Отображение indexSet до [Int] является избыточным.

Здесь - это оптимизированный remove(at indexes: IndexSet) метод.

0 голосов
/ 18 октября 2018

index - массив Int.Но вам нужно передать Int методу remove.

Если вы хотите удалить все объекты для выбранных индексов строк, чем написать:

let indexes = tableView.selectedRowIndexes.map { Int($0) }
indexes.reversed().forEach { arrDomains.remove(at: $0) }

Если вы хотите удалитьобъект по некоторому индексу, чем написать:

guard let index = tableView.selectedRowIndexes.map { Int($0) }.first(where: { /*.your condition here */ }) else { return }
arrDomains.remove(at: $0)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...