2016-05-10 6 views
1

Я хочу создать дубликат объекта с сохранением, чтобы новый экземпляр имел все те же значения, но не был привязан к Realm. Использование Object(value: persistedInstance) отлично подходит для классов, чьими свойствами являются все строки, даты, числа и т. Д. Однако при дублировании экземпляра класса со свойствами типа списка, список дубликатов и элементы списка продолжают ссылаться на сохраненные записи. Как создать дубликат, полностью отделенный от Realm, включая любые списки и элементы в этих списках?RealmSwift: отделить объект от Realm, включая его свойства типа List

+0

Вы пытались использовать 'Results.flatMap {$ 0} .first'? Обычно я использую 'map' и' flatMap' для получения «замороженных» объектов Realm. – mro

ответ

5

Это еще не поддерживается Родом, но requested feature tracked by issue #3381.

На данный момент вам необходимо реализовать собственный конструктор глубоких копий. Общая стратегия заключается в том, чтобы сделать это на каждой модели и вызвать конструкторы глубоких копий связанных объектов. Вы должны обратить внимание, хотя вы не сталкиваетесь с циклами.

2

Мы используем ObjectMapper для создания глубокой копии объекта, превратив его в JSON, а затем превратим этот JSON обратно в тот же объект, за исключением того, что он не связан с Realm.

Mike.

Смежные вопросы