Ответ 1
(Отказ от ответственности: я работаю в Realm.:)) Большое спасибо! Приятно слышать, что вы наслаждаетесь королевством!
Несколько экземпляров царства - Вам не нужно об этом беспокоиться! Объект Realm файла создается при создании первого экземпляра в каждом потоке, и тот же объект впоследствии возвращается каждый раз, когда вы пытаетесь выполнить его каждый раз после этого.
Экземпляры хранилища - Следуя с первого момента, нет, вам не нужно беспокоиться о том, чтобы повесить ссылку на Realm внутри других объектов. Поскольку Realm отслеживает свои объекты файла Realm внутри себя и возвращает те же самые, вы не будете наказаны за это. При этом, если постоянная ссылка на объект Realm внутри вашего объекта упрощает вашу сложность кода, не стесняйтесь продолжать использовать его.
Доступ к свойствам свойств Realm - Строго говоря, данные из файлов Realm не копируются с диска (как и обычный ORM); больше он использует сопоставление памяти, чтобы напрямую ссылаться на данные с диска прямо на ваши свойства в памяти. Итак, нет, вам не нужно беспокоиться о том, что файлы Realm становятся слишком большими в памяти.
Автообновление
Автообновление включено по умолчанию для объекта Realm file в основном потоке. Он должен быть включен вручную для объектов Realm файла в других потоках, или вы можете вместо этого вручную обновить их с помощью вызова метода refresh
.
EDIT: Я стою исправлен! Все объекты Realm файла на нескольких потоках по умолчанию имеют autorefresh
. Если autorefresh
включен, единственный раз, когда вам нужно позвонить refresh
, нужно, чтобы изменения, внесенные в файл Realm, отражались в других ссылках до завершения текущей итерации цикла выполнения.
Ссылка на объект Ссылка на область
Абсолютно нет, это неплохая практика вообще! Я на самом деле предпочитаю делать это в своих личных приложениях, которые используют Realm для обеспечения надлежащего контекста, поскольку это всегда проще, и обеспечивает более сильный визуальный контекст между объектом и его родительским файлом Realm в коде. (Ха-ха, если бы здесь была проблема с потоками, вы, вероятно, обнаружили бы ее до достижения точки write
).
Я надеюсь, что это помогло! Дайте мне знать, если вам нужно разъяснить что-нибудь здесь!