Предполагая, что LocationsStorage.shared.locations
является массивом, вы можете использовать LocationsStorage.shared.locations.remove(at: indexPath.row)
.Если у вас возникли проблемы с этим, пожалуйста, укажите полученную ошибку, чтобы я мог помочь вам
LocationsStorage.shared.locations.remove(at: indexPath.row)
tableView.deleteRows(at: [indexPath], with: .fade)
В примечании также добавьте beginUpdates
и endUpdates
, когда вы 'измените tableView, выполнив несколько вставок / удалений.
Редактировать: -
Поскольку вы получаете «Невозможно использовать мутирующий элемент в неизменяемом значении: установщик« местоположения »недоступен», что ясно означает, чтоу вас есть доступ только для чтения к массиву, у вас есть две опции ..
1) Перейдите в одноэлементный класс (класс LocationsStorage) и измените коллекцию locations
, чтобы сделать ее изменчивой.(Вы можете / не можете этого делать. Но если у вас есть необходимость изменить массив синглтона через tableView, у вас нет другого выбора)
2) Если вы действительно не чувствуетенеобходимо изменить массив класса singleton, вы можете иметь свою собственную локальную коллекцию в классе, где вы обрабатываете tableView как var myLocationArray = LocationsStorage.shared.locations
, и использовать этот массив в качестве источника данных