我有一堆userdefaults值,用于加载我的UITableView
-(void) prepareDisplay
{
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
table.dataSourceArray = [standardUserDefaults objectForKey:@"dataSource"];
}
- (void)viewDidLoad方法 {
[self prepareDisplay];
}
到目前为止一切正常。
然后稍后我更改userdefaults值并同步。然后我必须重新加载我的桌子。但在此之前,我需要使用相同的
设置数据源数组这里我认为我之前在viewDidLoad中创建的userdefaults实例是覆盖或搞乱我的userdefaults值,它再次调用旧值而不是新设置的值。我新设置的userdefaults值被覆盖了旧的价值观。我执行了userdefaults重置后,检查了应用程序沙箱中的plist文件,并正确反映了这些值。但后来,我不知道如何以及何时被旧的价值所覆盖。我确信在重置之后我没有做任何明确的事情来搞砸它们。
任何人都可以提供帮助。感谢
答案 0 :(得分:1)
实际上你不需要NSUserDefaults
的实例变量,因为它是一个单一对象。躲开它。此外,您可以检查同一对象的方法- (BOOL)synchronize
将对持久域的任何修改写入磁盘,并将所有未修改的持久域更新为磁盘上的内容。