guia español descargar ios objective-c nsmutablearray nsuserdefaults property-list

ios - descargar - qgis español



Intento de insertar un valor no de propiedad Objetivo C (2)

Si no quiere preocuparse por asegurarse de que todos los valores de su diccionario sean los tipos de lista de propiedades, simplemente puede convertir el diccionario en NSData,

NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; [def setObject:[NSKeyedArchiver archivedDataWithRootObject:self.myDictionary] forKey:@"MyData"]; [def synchronize];

Y para volver a un diccionario desde sandbox:

NSUserDefaults *def = [NSUserDefaults standardUserDefaults]; NSData *data = [def objectForKey:@"MyData"]; NSDictionary *retrievedDictionary = [NSKeyedUnarchiver unarchiveObjectWithData:data]; self.myDictionary = [[NSDictionary alloc] initWithDictionary:retrievedDictionary];

Espero que esto ayude a alguien. :RE

NOTA ADICIONAL: Si está obteniendo un diccionario mutable o una matriz mutable, recuerde utilizar el método "mutableCopy". De lo contrario, no podrá agregar o eliminar objetos de su diccionario / matriz recuperados. Por ejemplo:

NSMutableDictionary *retrievedDictionary = [[NSKeyedUnarchiver unarchiveObjectWithData:data] mutableCopy];

O

NSMutableArray *retrievedArray = [[NSKeyedUnarchiver unarchiveObjectWithData:data] mutableCopy];

Hola, estoy intentando crear listas de fourates de un objeto de restaurantes, mi aplicación tiene una lista de restaurantes diferentes, quiero que los usuarios puedan agregar restaurantes favoritos y este código no funciona

- (IBAction)toggleFav:(id)sender { Restaurant *resto = [self restaure]; NSMutableDictionary *dic = [[NSMutableDictionary alloc] init]; [dic setObject:resto.price forKey:@"restoPrice"]; [dic setObject:resto.restaurantId forKey:@"restaurantId"]; [dic setObject:resto.restoAbout forKey:@"restoAbout"]; [dic setObject:resto.restoAddress forKey:@"restoAddress"]; [dic setObject:resto.restoBeverages forKey:@"restoBeverages"]; [dic setObject:resto.restoCategory forKey:@"restoCategory"]; [dic setObject:resto.restoEmail forKey:@"restoEmail"]; [dic setObject:resto.restoLogo forKey:@"restoLogo"]; [dic setObject:resto.restoName forKey:@"restoName"]; [dic setObject:resto.restoPhone forKey:@"restoPhone"]; [dic setObject:resto.restoCity forKey:@"restoCity"]; NSArray *dicArray = [dic allKeys]; if([sender isSelected]){ //... [sender setSelected:NO]; NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"restoName"] mutableCopy]; [array removeObject:dicArray]; [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"restoName"]; } else { //... [sender setSelected:YES]; NSMutableArray *array = [[[NSUserDefaults standardUserDefaults] objectForKey:@"restoName"] mutableCopy]; [array addObject:dicArray]; [[NSUserDefaults standardUserDefaults] setObject:array forKey:@"restoName"]; [[NSUserDefaults standardUserDefaults] synchronize]; //NSLog(@"%@",[[NSUserDefaults standardUserDefaults] stringForKey:@"restoName"]); } }

''de clase'' __NSCFArray ''. Tenga en cuenta que los diccionarios y matrices en las listas de propiedades también deben contener solo valores de propiedad.


Solo puede almacenar tipos de lista de propiedades (matriz, datos, cadena, número, fecha, diccionario) o urls en NSUserDefaults. Tendrás que convertir tu objeto modelo a esos.