¿Cómo almacenar una matriz de numbers integers entre los inicios de la aplicación?

Quiero almacenar algunos datos como una matriz de integers. Para simplificar, digamos que quiero almacenar estos datos en una matriz de integers. Después de cada lanzamiento de la aplicación, quiero completar mi model usando esta matriz. Entonces, la pregunta es ¿Cómo almacenar matrices de integer en sandbox? No quiero escribir y reescribir datos, tal vez solo una vez al principio.

Lo que intenté: sé sobre el almacenamiento en plists y el almacenamiento utilizando NSCoding . Pero estas estrategias se utilizan para models más complicados, no solo matrices de integers.

EDITAR: ¿ es más rápido usar c-arrays, almacenarlos en files txt y crear el propio parser?

Plists y NSCoding también se usan para los integers simples.

Sin embargo, solo puede usar NSUserDefaults, esa es la manera simple:

 [[NSUserDefaults standardUserDefaults] setObject:myArray forKey:@"AppData"]; 

Facilita su recuperación más tarde desde cualquier lugar también.

Puede almacenarla en un plist, como usted dijo, no es una mala idea, podría funcionar y hacer el trabajo. No es complicado en absoluto, de verdad, y no solo se usa para models complejos.

De lo contrario, es posible que desee utilizar NSUserDefaults:

 if (![NSUserDefaults standardUserDefaults] objectForKey:@"AKey"]) { [[NSUserDefaults standardUserDefaults] setObject:yourArray forKey:@"AKey"]; [[NSUserDefaults standardUserDefaults] synchronize]; } 

No olvide que necesita envolver sus numbers integers en NSNumber . Una buena práctica para eso sería utilizar la notación "nueva" de Objective-C: NSNumber * nb = @(42) . Eso es mucho más legible que [NSNumber numberWithInt:42] .

Buena suerte !

EDIT : De acuerdo con tu edición, no, no uses tu propio analizador, al less por ahora. No intentes optimizar el código cuando realmente no lo necesitas. Especialmente implica "romper" los estándares de Objective-C (y con eso me refiero a usar tus propias cosas hechas que podrían fallar y / o introducir comportamientos extraños donde Objective-C proporciona su propia manera de hacerlo). Mira esta respuesta para saber más sobre demasiada optimization .

 +(void)storeArrayInDeviceWithKey:(NSArray *)arrData withKey:(NSString *)key{ NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults]; [currentDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:arrData] forKey:key]; [currentDefaults synchronize]; } 
  • Para NSArray necesitas poca conversación con

     NSKeyedArchiver archivedDataWithRootObject:UR OBJECT