Попробуйте привести массив как NSMutableArray, используя
[(NSMutableArray *)[defaults objectForKey:@"userLocationsDetailedXML"] replaceObjectAtIndex:1 withObject:@"y"] ;
это должно позаботиться об этом.
EDIT:
Учитывая, что вы на самом деле не можете хранить NSMutableArrays в NSUserDefaults
, я рекомендую вам просто продолжить и переназначить всю вещь, например так:
NSMutableArray *xml = [[NSMutableArray alloc] init];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[xml addObject:@"x"];
[defaults setObject:xml forKey:@"userLocationsDetailedXML"];
[xml release];
Затем, для изменения значений,
NSMutableArray *userLoc = [[defaults objectForKey:@"userLocationsDetailedXML"] mutableCopy];
[userLoc replaceObjectAtIndex:1 withObject:@"y"];
[defaults setObject:userLoc forKey:@"userLocationsDetailedXML"];
[userLoc release]; //thanks, dreamlax!