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所有的信息:

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/nsuserdefaults_Class/Reference/Reference.html