NSUserDefaults同步方法
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:@"xxxxxxxx" forKey:@"name"]; [defaults synchronize];
我需要知道为什么我必须使用上述代码的最后一行[defaults synchronize]
? 使用它的目的是什么? 这是必须的吗?
[default synchronize];
的目的[default synchronize];
是让用户默认写入磁盘立即 。 你不需要明确地调用它,iOS已经在适当的时候做到了。 所以你可以删除该行。 事实上,如果每次设置默认值时都调用synchronize
,则会出现性能问题。
在iOS 7之前,当应用程序转换到后台时,用户默认始终同步的地方。 至于iOS 7,不再是这种情况,所以您可能需要在应用程序委托的applicationDidEnterBackground:
调用synchronize
applicationDidEnterBackground:
或者注册到UIApplicationDidEnterBackgroundNotification
通知来执行此操作。
从文档-[NSUserDefaults synchronize]
:
因为此方法是定期自动调用的,所以只有当您不能等待自动同步(例如,如果您的应用程序即将退出),或者如果要将用户默认值更新为磁盘上的内容你没有做任何改变。
是的,用这行代码告诉你的系统用你的新默认值上传NSUserDefaults。
你可以在这里find所有的信息: