Pregunta

En el desarrollo de mi primera aplicación iPhone serio (Es decir, me gustaría que trajeran a cabo en la AppStore), que necesitaba una buena manera de representar mis datos. En vez de ir con los datos básicos, I (estúpidamente, creo) decidí clases de uso para representar mis datos.

He creado tres clases, MMDot, MMShowMovement y MMShow. El MMShowMovement sostiene instancias de la clase MMDot en una matriz, como la MMShow sostiene instancias de MMShowMovement. Sonaba como una buena manera de hacerlo, cada clase tiene mucha lógica que tiene que ir con él, así que pensé que las clases parecía una buena manera de ir sobre la representación de todos estos datos.

Mi pregunta es, ¿hay una manera fácil de guardar las instancias de estas clases para que pueda restaurar los datos después de la aplicación se vuelve a abrir? He hecho aplicaciones en OS X usando un NSKeyedArchiver, sería similar en el iPhone? ¿Sería más fácil para empezar de nuevo usando la base de datos en su lugar (Estos objetos son muy complejas, especialmente MMDot con cerca de 15 variables de instancia, ahora que lo miro, tal vez no tan complejo)?

Estoy realmente en una pérdida aquí.

¿Fue útil?

Solución

Se puede utilizar absolutamente NSKeyedArchiver persistir los objetos. Soy un fan de uno u otro método, la decisión recae en su mayor parte de sus necesidades de aplicación. No creo que será mucho trabajo para volver a su modelo de objetos en CoreData. Sin saber nada de su aplicación diría que si usted está haciendo la persistencia simple con un modelo sencillo puede que no necesite de Datos Básicos, si tiene relaciones complejas y va a leer / persistencia de datos con frecuencia durante una sesión de aplicación de datos básicos es probablemente la forma para ir.

Otros consejos

Si usted tiene una gran cantidad de instancias de objetos, que son probablemente mejor usar datos básicos - que ayudará a las cosas de caché, que ayuda con consultas para obtener conjuntos específicos de objetos, y así sucesivamente. KeyArchiving es realmente mucho más útil si va a guardar de un puñado de casos, pero tiene algunas desventajas. - en particular, es más difícil de localizar pérdidas de memoria a partir de objetos desarchivadas

Núcleo de datos también puede hacer la paginación de resultados para usted también, para que no esté recogiendo en los contenidos de Entre una gran variedad si no lo necesita.

Yo estaba investigando la serialización de mis clases, el otro día y se fue con el uso de NSUserDefaults. Acabo de dar toda la parte interna de mis objetos de una clave única basada en el objeto. Parecido a un trabajo rápido para mí.

ha escrito un blog sobre ello aquí: http: //technolojiadev.blogspot. com / 2009/12 / serializar-this.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top