Я хочу решить следующую проблему:
Я хотел бы поработать с некоторыми NSManagedObject
в контексте и изменить некоторые свойства во время выполнения, но не сообщая SQLite о каких-либо изменениях в нем.
Я просто хочу сохранить NSManagedObject
в базе данных, когда нажму кнопку «Сохранить» или подобное.
Как я выяснил из демонстрации исходного кода, нам нужно использовать beginUnsafe для этих целей (возможно, я ошибаюсь)
func unstoredWorkout() -> WorkoutEntity {
let transaction = CoreStore.beginUnsafe()
let workout = transaction.create(Into<WorkoutEntity>())
return workout
}
let workout = unstoredWorkout()
workout.muscles = []
Теперь, когда я пытаюсь обновить workout.muscles = []
приложение вылетает с ошибкой:
error: Mutating a managed object 0x600003f68b60 <x-coredata://C00A3E74-AC3F-47FD-B656-CA0ECA02832F/WorkoutEntity/tC3921DAE-BA43-45CB-8271-079CC0E4821D82> (0x600001c2da90) after it has been removed from its context.
Мой вопрос, как мы можем создать объект без его сохранения и как мы можем сохранить его, когда мы изменяем некоторыесвойства и избежать этого сбоя.