我在FirstVC中有两个Viewcontrollers,我构建了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];
希望能帮助到你。