Estoy confundido acerca de NSUserDefaults
en el iPhone.¿Hay alguna forma mejor de poner un montón de cosas en NSUserDefaults?
Vengo de un fondo de C/asm y el material de Objective-C ha sido una experiencia de aprendizaje.
Actualmente estoy usando NSUserDefaults
para almacenar algunas cadenas (para los nombres en una tabla de mejores puntuaciones). Quiero comenzar a implementar una función de tipo "Guardar juego", así que si el usuario recibe una llamada o sale del juego por un momento, puede volver a ella.
Para recuperar el juego, tengo un par de BOOL
banderas, un par de int
s para almacenar algunas variables necesarias, pero estoy atascado en una matriz que necesito almacenar.
Tengo una matriz de 50 elementos de unsigned char
s. Podría moverlo a int
s si fuera más fácil, pero simplemente no lo veo.
Para trabajar con NSUserDefaults
puedo setBool
(ya lo está haciendo eso), setFloat
(de nuevo, ya que hacer), setInteger
y setObject
.
Obviamente, podría declarar claves para cada elemento de la matriz y almacenarlas una por una con setInteger
, pero eso es realmente kludgy. ¿Cuál es la mejor manera de abordar esto? En lugar de una matriz de unsigned char
s, de alguna manera trato de usar un NSObject
? ¿Hay algún buen tutorial en NSObject
que pueda leer para entenderlo mejor?
Sí, normalmente usaría NSUserDefaults para las preferencias (como elegir unidades imperiales y métricas), y almacenar los datos de su aplicación en un archivo separado utilizando listas de propiedades serializadas, sqlite, Core Data, etc. –
De acuerdo, los valores predeterminados del usuario son para prefs, pero los datos deben almacenarse en otro lugar, como por ejemplo en "~/Library/Application Support/MyApp /" por ejemplo. –
En iPhone, obviamente hay diferentes convenciones para almacenar datos, ya que la estructura es muy diferente. Consulte las guías de programación de iPhone correspondientes para obtener detalles sobre el almacenamiento de archivos para su aplicación. –