在我的 iPhone 应用程序中,我removeObjectForKey:@"bla"
正在setObject:nil forKey:@"bla"
使用[NSUserDefaults standardUserDefaults]
.
但是,当我在将新视图控制器推送到导航控制器堆栈之前执行此操作时,默认值不会更新。
如果我在viewDidAppear
随后显示的推送控制器中执行此操作,则synchronize
调用会执行预期的操作。
我不明白这种行为。有没有人遇到过类似的问题?
摘要:在推送新 VC 之前删除+同步:NSUserDefaults 保持不变。删除+同步viewDidAppear
,它的工作原理。
我也尝试过使用setPersistentDomain:forName:
,但结果是一样的..
编辑:这是代码:
+ (void)deleteDefaultEntries
{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults removeObjectForKey:@"key1"];
[defaults removeObjectForKey:@"key2"];
[defaults removeObjectForKey:@"key3"];
[defaults removeObjectForKey:@"key4"];
[defaults synchronize];
}