NSUserDefaults 的同步方法何时以及为什么会失败?确保我的值实际写入并提交给 NSUserDefaults 的最佳方法是什么,这样在应用程序重新启动后恢复状态不会有任何问题?
问问题
3658 次
3 回答
5
该synchronize
方法是围绕函数的更高级别的 API 包装器CFPreferencesSynchronize
。文档中没有任何内容,但我认为它synchronize
只是返回CFPreferencesSynchronize
. 由于此 CoreFoundation 功能可用于同步主机(管理员)和基于网络的首选项,因此在某些情况下可能会失败。
在应用程序仅同步其用户域首选项(在当前用户的库目录中)的最常见情况下,该功能通常不会失败。我认为忽略synchronize
. 但那只是我的个人意见。
于 2009-10-07T11:28:13.930 回答
0
在某些情况下,我的应用程序试图用某个键写入一个 nil 值,这导致同步失败。现在我在保存之前检查 nil 的值,问题得到解决。
于 2009-10-07T12:54:50.573 回答
0
在我的情况下,我错误地使用了 NSUserDefaults,它会失败。比如我定义了自己的对象,放到NSUserDefaults或者NSDictionary里面,可以放,但是同步的时候会失败。因为 NSUserDefaults 并不支持所有类型的对象。据我所知,NSString、NSNumber、NSDictionary....你可以谷歌它如何使自定义类可以存储在 NSUserDefaults 中。
于 2013-01-20T04:25:21.967 回答