Обновить текстовые поля до CoreData без уничтожения неизмененных данных - PullRequest
0 голосов
/ 04 августа 2020

Когда я изменяю любое текстовое поле в моей форме обновления новой информацией, ТОЛЬКО это изменение сохраняется. Все остальные ранее сохраненные данные для объекта теряются в процессе.

    func updateDog (
            id: String,
            dogName: String,
            activeStatus: Int16,
            breed: String,
            //etc  (about 30 attributes below here )

)
        {
            let fetchDog: NSFetchRequest<Dog> = Dog.fetchRequest()

            fetchDog.predicate = NSPredicate(format: "id == %@", id)
           
            do {

                let dog = try self.moc.fetch(fetchDog).first

                dog?.dogName = dogName
                dog?.activeStatus = activeStatus
                dog?.breed = breed
                //etc

if self.fetchDog(dogName: dogName)?.hasChanges ?? true {

                    try self.moc.save()
                }

            } catch
                let error as NSError {
                print(error)
            }

Сообщения об ошибках отсутствуют, но все уже сохраненные атрибуты, которые не были изменены во время обновления, теряются в файле self.mo c. Сохранить процесс. Обновляются только отредактированные поля.

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

...