Когда я пытаюсь обновить существующую запись в моей основной базе данных, я выбираю нужный элемент по идентификатору, меняю его на новый элемент и сохраняю в контексте.
Однако, когда я выбираю объект изаменив его, я получаю предупреждение «Базовый объект данных был записан, но никогда не читается».Это имеет смысл, поскольку я на самом деле не использую этот объект, но, насколько я понимаю, просто присвоение ему значения сохраняет его в Core Data.
static var current: User? {
didSet {
if var userInCoreData = User.get(with: current?.id), let current = current { //userInCoreData is the value with the warning
userInCoreData = current
}
CoreDataManager.saveInContext()
}
}
static func get(with id: String?) -> User? {
guard let id = id else { return nil }
let request: NSFetchRequest = User.fetchRequest()
let predicate = NSPredicate(format: "id = %@", id)
request.predicate = predicate
do {
let users = try CoreDataManager.managedContext.fetch(request)
return users.first
} catch let error {
print(error.localizedDescription)
return nil
}
}
Я хочу убедиться, рекомендуется ли этопроцесс перезаписи значения в Core Data, или я что-то не так делаю?