Core Data: как изменить запись?

swift
xcode
coredata

#1

Просьба поделиться опытом при работе с Core Data
Как сохранить отредактированную запись из ViewControllerа, содержащего поля с атрибутами записи
Как обратиться именно к этой записи и сохранить в ней изменения?
Пока получается только добавить новую запись с измененными атрибутами выбранной записи


#2

Core Data пока ни разу не пользовался. Но по ощущениям, он сложнее в настройке, чем Realm.


#3

Привет, вот пример изменения данных у юзера с полями name и age.
У каждой записи есть objectID. Делаешь поиск через NSPredicate по objectID, изменяешь данные и сохраняешь.

    func updateData(){
	guard let appDelegate = UIApplication.shared.delegate as? AppDelegate else { return }
	let managedContext = appDelegate.persistentContainer.viewContext
	let fetchRequset: NSFetchRequest<User> = NSFetchRequest.init(entityName: "User")
	fetchRequset.predicate = NSPredicate(format: "self IN %@", [user?.objectID])
		
		do {
			let user = try managedContext.fetch(fetchRequset).first
			user?.name = self.name.text
			user?.age = self.age.text

			do {
				try managedContext.save()
			} catch {
				print("ERROR")
			}
		} catch {
			print("ERROR")
		}
	}