Estamos en el proceso de convertir un proyecto para usar Realm. Estamos realmente impresionados hasta ahora, especialmente con Realm Browser (¡muy útil!).
Como resultado, han surgido algunas preguntas y nos gustaría conocer algunos patrones de uso concretos antes de continuar. Nuestra aplicación tiene varios subprocesos (llamadas a la API, animaciones, etc.), así que tenlo en cuenta al leer las preguntas, ya que sé que no se puede acceder a las instancias de Realm a través de subprocesos (actualmente).
- ¿Cuán preocupados deberíamos estar por crear repetidamente instancias de Realm? ¿Qué es la sobrecarga?
- ¿Deberíamos molestarnos en retener las instancias de Realm en ViewControllers o Singletons para uso repetido? Hemos intentado esto, pero a veces se accede a las instancias desde diferentes subprocesos, por lo que tuvimos que volver a crear una nueva instancia cada vez.
- Al acceder a las propiedades de relación en las instancias de Realm, ¿los datos resultantes que se leen se retienen en la memoria o se leen desde el disco cada vez? ¿Tenemos que preocuparnos de que las instancias de Realm retenidas se vuelvan demasiado grandes debido al acceso profundo a las relaciones?
¿Cuándo es necesario actualizar una instancia de Realm? He notado que cuando hago cambios en el navegador de Realm, se reflejan en un Realm retenido sin llamar a actualizar.- Parece que hay una propiedad de actualización automática en cada reino que causa esto de acuerdo con la documentación.
- ¿Es
realm
unaObject
mala práctica acceder a la propiedad ? Hemos usado esto para escribir en un Reino si la función que usa el objeto no creó el objeto o el Reino (en el mismo hilo, por supuesto).
Por ejemplo...
func saveStuff(thingToUpdate: Object?) {
if let thingToUpdate = thingToUpdate, let realm = thingToUpdate.realm {
realm.write {
thingToUpdate.name = "lionpants"
}
}
}
Gracias por adelantado. Espero sus respuestas. :RE