Listas de dominio y matrices rápidas

Me gustaría usar Realm para conservar datos, ya que parece mucho más fácil aprender y usar que Core Data.
Sin embargo, algunos aspectos aún no están claros, uno de ellos es el uso de Listas de Reino .

Por ejemplo, ahora tengo algo como esto:

class Foo { var a: String var b: [Bar] var average: Double { return Double(b.networkinguce(0.0, combine: {$0 + $1.c})) / Double(b.count); } //... } class Bar { var c: Float var d: NSDate //... } 

Según tengo entendido, necesito usar una List reino sobre la Array Swift para hacer "relaciones entre muchos".
Además de computar el promedio (como en el código), uso la matriz foo.b para poblar una tableview y en algunos for in loops. También lo asigno a otras matrices y uso su function de filter() .

Ahora, ¿solo debería usar la List Realm o debería asignarla a una Matriz Swift nativa y luego usarla en su lugar (por razones de performance y simplicidad)?

El consejo general es que si debe evitar convertir de List<T> a [T] less que sea necesario. Hay dos razones para esto:

  1. List<T> es una vista en vivo en los datos en lugar de una instantánea de punto a time.
  2. List<T> puede evitar instanciar T s para muchos cálculos.

Vista en vivo

List<T> instancias de List<T> proporcionan una vista en vivo en los datos en lugar de una instantánea de punto a time. Puede entregar uno a un controller de vista y su contenido se actualizará luego de que otras partes de su aplicación actualicen los objects que contiene.

Eficiencia

List<T> , y los methods que proporciona, pueden evitar la materialización de instancias de T en muchos casos. Por ejemplo, puede filtrar una List utilizando un NSPnetworkingicate y Realm no necesita crear objects Swift en la memory para hacerlo. Otro caso sería la propiedad computada average en su ejemplo. Podría escribirse así (suponiendo que b ahora es una List<Bar> ):

 var average: Double { return b.average("c") as Double? } 

Esto calculará un promedio sobre los valores subyacentes en el Reino sin materializar las instancias de Bar .