每当用户选择一个国家/地区时,我都会尝试向 NSMutableArray
添加元素。但每次我使用 [myarray setobject:@""];
时,它都会添加新值,覆盖我的旧值。我想要这个数组,因为我正在使用它:
[[NSUserDefaults standardUserDefaults]setObject:(NSMutableArray *)selectedCountriesByUser forKey:@"userSelection"];
[[NSUserDefaults standardUserDefaults]synchronize];
我想要一个数组来维护用户选择的国家/地区列表,即使在应用程序关闭后也是如此。
我该怎么办?
最佳答案
setObject
替换数组中的所有对象
例如,从NSUserDefault
获取值:
NSMutableArray *myMutableArray = [NSMutableArray arrayWithArray:[[NSUserDefault standardUserDefault] objectForKey:"userSelection"]];
你应该使用 [myMutableArray addObject:"aCountry"];
而不是覆盖,而只是添加
及之后
[[NSUserDefaults standardUserDefaults]setObject:myMutableArray forKey:@"userSelection"];
[[NSUserDefaults standardUserDefaults]synchronize];
编辑:
-(void) viewDidLoad {
//your selectedCountriesByUser
myMutableArray = [NSMutableArray arrayWithArray:[[NSUserDefault standardUserDefault] objectForKey:"userSelection"]];
}
...
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
//add object to array
[myMutableArray adObject:"yourObj"];
[[NSUserDefaults standardUserDefaults]setObject:myMutableArray forKey:@"userSelection"];
[[NSUserDefaults standardUserDefaults]synchronize];
}
关于ios - NSMutableArray 添加元素在 iPhone 中被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21460584/