Cuando uso este método por primera vez funciona bien, pero cuando lo llamé por segunda vez recibí el error "Método de mutación enviado al objeto inmutable". El problema está en línea con el comando "addObject".Método de mutación enviado al objeto inmutable
-(IBAction) save: (id) sender{
NSMutableArray *placesT= [[NSUserDefaults standardUserDefaults] objectForKey:@"placesT"];
if (!placesT) {
placesT=[[[NSMutableArray alloc] init] autorelease];
}
[placesT addObject: [NSString stringWithFormat:@"%@", tagF.text] ];
NSUserDefaults *tUD=[NSUserDefaults standardUserDefaults];
[tUD setObject:placesT forKey:@"placesT"];
[tUD synchronize];
[self dismissModalViewControllerAnimated:YES];
}
Bueno el problema es con la inicialización placesT. Mi apuesta es que el estándar NSUserDefault está vacío la primera vez y va al segundo init. También tienes una fuga de memoria. – Radu
Tenga en cuenta que probablemente pueda reemplazar '[NSString stringWithFormat: @"% @ ", tagF.text]' con 'tagF.text' solamente. No es necesario enviar '+ stringWithFormat ::' si 'text' ya es' NSString'. –