Как обновить данные Core Data из ячеек таблицы swift 3?

Для обновления данных Core Data из ячеек таблицы в Swift 3 мы можем использовать методы делегата UITableViewDelegate - tableView(_:didSelectRowAt:). В этом методе мы будем получать выбранную ячейку и затем выполнять обновление данных Core Data.

Вот пример кода:

1. Создайте модель данных Core Data и сгенерируйте класс сущности (например, "Person").
2. Создайте таблицу с ячейками для отображения данных из Core Data.
3. Установите делегат UITableViewDelegate для вашей таблицы.

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var tableView: UITableView!
    
    var people: [Person] = []
    let context = (UIApplication.shared.delegate as! AppDelegate).persistentContainer.viewContext
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        tableView.delegate = self
        tableView.dataSource = self
    }
    
    // Загрузка данных из Core Data в массив people.
    func loadData() {
        let request: NSFetchRequest<Person> = Person.fetchRequest()
        
        do {
            people = try context.fetch(request)
        } catch {
            print("Ошибка при загрузке данных из Core Data: (error)")
        }
        
        tableView.reloadData()
    }
    
    // Обновление данных Core Data при выборе ячейки.
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let person = people[indexPath.row]
        
        // Определите, какое поле данных требуется обновить, и выполните обновление.
        person.name = "Новое имя"
        person.age = 25
        
        // Сохраните внесенные изменения в Core Data.
        do {
            try context.save()
        } catch {
            print("Ошибка при сохранении данных в Core Data: (error)")
        }
        
        loadData()  // Загрузите данные заново, чтобы отобразить обновленные данные в таблице.
    }
    
    // Остальные методы делегата и источника данных таблицы...
    
    // Количество секций в таблице.
    func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    // Количество ячеек в секции.
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return people.count
    }
    
    // Настройка каждой ячейки.
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
        let person = people[indexPath.row]
        
        cell.textLabel?.text = person.name
        cell.detailTextLabel?.text = "(person.age)"
        
        return cell
    }
}

В этом примере мы использовали метод didSelectRowAt(_:), чтобы получить выбранную ячейку и затем обновить соответствующий объект Person в Core Data. Затем мы сохраняем внесенные изменения в Core Data и загружаем данные заново, чтобы отобразить обновленные данные в таблице.

Обратите внимание, что вам нужно настроить соответствующие атрибуты объекта Person в методе tableView(_:cellForRowAt:), чтобы отобразить данные из Core Data в ячейках таблицы.