2016-12-21 14 views
1

Возможно ли управлять данными, хранящимися между несколькими файлами?Область, поддерживаемая несколькими файлами?

Предположим, у меня есть несколько файлов data1.realm, data2.realm, data3.realm и т. Д., Содержащие объекты с той же моделью. Можно ли получить уникальный экземпляр RLMRealm, который будет обращаться к данным всех этих файлов?

Если нет, то каков наилучший способ справиться с этой ситуацией? Миграция?

+0

Один Realm принадлежит к одной конфигурации, и одна конфигурации принадлежит к одному файл. – EpicPandaForce

ответ

1

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

RLMRealm экземпляры сами представляют собой один файл на диске и не могут быть динамически созданы для сопоставления комбинаций других областей. После того, как RLMObject был добавлен к родительскому RLMRealm, его нельзя перемещать/поддерживать на другом RLMRealm, представляя другой файл.

Это, скорее всего, зависит от конкретных сценариев использования, но самое простое решение было бы просто запросить для объектов в отдельных случаях RLMRealm для каждого файла, и помещая полученные RLMResults объектов каждого из них в NSArray.

Пока данные не могут быть напрямую разделены между Realms, вы можете использовать глобально уникальные первичные ключи (например, NSUUID), чтобы указать отношения между объектами в разных Realms.

Если вам нужно, это также можно создавать Realmless копию RLMObject с, если вы в конечном итоге хотите перемещать объекты между Realms:

экземпляра
Dog *savedDog = [[Dog allObjects] firstObject]; 
Dog *copiedDog = [[Dog alloc] initWithValue:savedDog]; 
Смежные вопросы