我在 FirstVC 中有两个 Viewcontroller,我构建了 5 个 UITextField
用于注册,这个 TextField 值在字典中存储,最后字典存储在 NSUserdefault
中,然后在 SecondVC 中我想显示这个数据
我的问题是,每次我在 NSUserdefault
中添加新的自由裁量权时,旧的字典被替换
我想要所有字典的数据。
下面是我的FirstVC的代码
-(void)btnReg
{
//data add in disctionary
for (int i=1; i<=5; i++)
{
UITextField *txtTemp=(UITextField *)[self.view viewWithTag:i];
[discRege setObject:[NSNumber numberWithInt:count] forKey:@"no"];
[discRege setObject:txtTemp.text forKey:[arraylblName objectAtIndex:i-1]];
}
//dictionary add in nsuserdefault
[[NSUserDefaults standardUserDefaults]setObject:discRege forKey:@"ABC"];
[[NSUserDefaults standardUserDefaults]synchronize];
//push to SecondVc
secondViewController *objSec=[[secondViewController alloc]init];
[self.navigationController pushViewController:objSec animated:YES];
[self.navigationController setNavigationBarHidden:false];
}
下面是我的SecondVC的代码
ArratTemp =[[NSUserDefaults standardUserDefaults]objectForKey:@"ABC"] ;
if (!ArratTemp )
{
ArratTemp =[[NSMutableArray alloc]init];
}
else
{
ArratTemp = [[[NSUserDefaults standardUserDefaults]objectForKey:@"ABC"]mutableCopy];
}
NSLog(@"%@",ArratTemp);
最佳答案
每次您使用相同的键并替换现有的字典对象时...
// Using the same key will overwrite the last saved dictionary.
[[NSUserDefaults standardUserDefaults] setObject:discRege forKey:@"ABC"];
与其将其存储为字典,不如将其存储为字典数组。每当您添加新注册时,获取保存的数组,将新的字典对象添加到其中并使用该数组更新 userDefaults。
mutableArray = [[[NSUserDefaults standardUserDefaults]objectForKey:@"ABC"] mutableCopy];
[mutableArray addObject:discReg];
[[NSUserDefaults standardUserDefaults] setObject:mutableArraay forKey:@"ABC"];
[[NSUserDefaults standardUserDefaults] synchronize];
希望对您有所帮助。
关于ios - 如何在 NSUserDefaults 中存储多个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37566575/