2011-01-14 9 views
5

Por favor dígame cómo puedo almacenar NSMutableArray en NSUserDefaults.cómo almacenar NSMutableArray en NSUserDefaults

Tengo una matriz llamada datos (NSArray). Deseo agregar esta matriz en NSMutableArray llamada mArray.

[mArray addObject:data]; 
[prefs setObject:mArray forkey:@"test"]; 
[prefs synchronize]; 

& desea almacenar los valores en mArrayNSUserDefaults. Por favor dígame cómo puedo almacenar & recuperar estos valores. El código anterior está almacenando solo el último valor que no se agrega en NSUserDefaults.

Gracias

Respuesta

21

No puede. Ver http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html, en particular:

valores devueltos por NSUserDefaults son inmutables, incluso si se establece un objeto mutable como el valor. Para el ejemplo , si establece una cadena mutable como el valor de "MyStringDefault", la cadena que recuperará más tarde usando stringForKey: será inmutable.

En su lugar, hacer una mutableCopy de la matriz que recupera de NSUserDefaults, añade su objeto, a continuación, establecer su nueva gama de nuevo.

Cuestiones relacionadas