Как определить IndexPath.row по значению одного из элемента массива?


#1

Как определить IndexPath.row по значению одного из элемента массива?
К примеру есть следующий массив:

cars: [Car] = [Car(model: "BMW", color: "white", year: "2000"), ... , Car(model: "Volvo", color: "red", year: "2010"),... Car(model: "Audi", color: "grey", year: "2005")]

Допустим массиве cars пару тысяч строк, они все отображаются через ViewController --> tableView --> в динамической ячейке.
Есть поиск нужной машины (UISearchController и соответственно массив отфильтрованных машин filterCars), теперь выбираем нужную машину в массиве filterCars необходимо удалить/изменить эту машину в массиве cars, но для этого как я понимаю нужно как то определить его indexPath по известным значениям (model, color, year) строки.

Вопрос:

  1. как удалить/изменить строку в массиве cars, выбрав его в массиве filterCars?
  2. как определить IndexPath (IndexPath.row) зная только значения (model, color, year) в строке?

#2

Что вы спрашиваете?
массив строиться на основе массива объектов Car
и при поиске у вас есть объект Car

найти объект Car в массиве Cars и удалить))

еще раз повторю!у вас массив строиться на основе массива объектов Car


#3

Вы словно злой гений издеваясь над новичком сказали:

:slight_smile:

Я уже нашел сам ответ.
Сказали бы используй для определения индекса:
let objectIndex = cars.index(of: filterCars[indexPath.row])

и для удаление соответственно:
cars.remove(at: objectIndex!)

Я бы сказал спасибо! :slight_smile:


#4

используй для определения индекса:
let objectIndex = cars.index(of: filterCars[indexPath.row])

и для удаление соответственно:
cars.remove(at: objectIndex!)


#5

я это делал без злого умысла, а только чтоб натолкнуть на мысль) это дает больше пользы чем расписывать шаги))