В процессе преобразования проекта мы используем Realm. Мы действительно впечатлены пока что с помощью Realm Browser (так удобно!).
В результате появилось несколько вопросов, и мы хотели бы получить некоторые конкретные шаблоны использования, прежде чем идти дальше. Наше приложение сильно многопоточно (вызовы API, анимации и т.д.), Поэтому имейте это в виду при чтении вопросов, так как я знаю, что экземпляры Realm не могут быть доступны через потоки (в настоящее время).
- Как мы волновались, если мы будем многократно создавать экземпляры Realm? Что такое накладные расходы?
- Должны ли мы беспокоиться о сохранении экземпляров Realm в ViewControllers или Singletons для повторного использования? Мы пробовали это, но иногда экземпляры получают доступ из разных потоков, поэтому нам приходилось возвращаться к созданию нового экземпляра каждый раз.
- При доступе к свойствам отношений в экземплярах Realm, результирующие данные, которые считаются сохраненными в памяти, или считываются из диск каждый раз? Нужно ли нам беспокоиться о сохраненных экземплярах Realm становится слишком большим из-за глубокого доступа к отношениям?
-
Когда требуется обновить экземпляр Realm? Я заметил, что когда Я вношу изменения в браузер Realm, они отражаются в сохраненных Царство без вызова обновления.- Похоже, что в каждой области есть свойство Auto-Refresh, которое вызывает это в соответствии с документацией.
- Доступ к свойству
realm
при неправильной практикеObject
? Мы использовали это для записи в Realm, если функция, использующая объект, не создавала объект или Realm (в том же потоке, конечно).
Например...
func saveStuff(thingToUpdate: Object?) {
if let thingToUpdate = thingToUpdate, let realm = thingToUpdate.realm {
realm.write {
thingToUpdate.name = "lionpants"
}
}
}
Спасибо заранее. Я с нетерпением жду ваших ответов.: D