Допустим, у меня есть следующий сценарий ...Отделить объект от царства?
ViewController1
загружает Person
объект из Realm на основной поток и передает его ViewController2
. Взаимодействие с пользователем в ViewController2
вызывает изменение одного и того же объекта Person
, но я хочу только сохранить изменения после нажатия на кнопку «Сохранить».
В настоящее время при изменении пройденного объекта Person
в ViewController2
возникает ошибка выполнения, указывающая, что изменения в объекте должны выполняться в блоке записи. Это имеет смысл, но в этом сценарии я фактически не хочу постоянно сохранять изменения.
- Есть ли способ отделить объект от царства, чтобы избежать этих ошибок ?
- Если нет, то какой будет предлагаемая работа? (Копирование объекта в новый экземпляр? Отслеживание изменений в объект отдельно и применяя их позже? И, кажется, довольно грязный.)
Возможно, связанный https://github.com/realm/realm-java/issues/1202 – Ixx
Посмотрите здесь: https://realm.io/docs/swift/latest/ в разделе «Обновление объектов», если у вас есть первичный ключ, вы можете использовать 'Realm(). add (_: update:)'. Таким образом, кажется, что вы заново создали объект, и когда вы хотите его сохранить, выполните транзакцию записи и выполните обновление. – Ixx
Спасибо, Ixx, это та самая проблема, которую я испытываю. Мой объект довольно большой (много полей), и я не хочу, чтобы каждый раз копировать его на новый объект. :( – lionpants