Обновить элемент вложенного массива, если существует - PullRequest
0 голосов
/ 26 октября 2018

Следующий код прекрасно работает, так как находит, есть ли у меня элемент во вложенном массиве.Если такого элемента не существует, код вставляет его.

Я изо всех сил пытаюсь найти способ удалить существующий элемент, если он уже существует, поэтому я могу вставить его обновленную версию.

Возможно, есть даже лучший способ просто обновить существующий элемент, не удаляя его сначала?

if insertSolution.contains(where: { $0.resourceName == name }) {
  //remove $0
  //insert new resource
  print("Already inserted. Update needed!")
} else {
  insertSolution.append(solution);
  print("New solution. Insert needed!");
}

1 Ответ

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

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

if let idx = insertSolution.firstIndex(where: { $0.resourceName == name }) {
    // Update existing element:
    insertSolution[idx] = ...
} else {
    // Append new element:
    insertSolution.append(...);
}
...