如何判断NSUserDefaults是否已保存?

时间:2010-01-08 23:10:04

标签: iphone nsuserdefaults

我希望有一个If语句,可以告诉我是否保存了NSUserDefaults。

2 个答案:

答案 0 :(得分:5)

NSUserDefaults的重点是,它可以在没有您干预的情况下透明地为您保存数据,因此您无法询问它是否保存了数据。

但是,您可以通过调用[[NSUserDefaults sharedUserDefaults] synchronize];来强制保存,BOOL会返回{{1}},表示保存是否成功。该方法的文档说:

  

因为这种方法是自动的   定期调用,使用   这种方法只有你不能等待   用于自动同步(for   例如,如果您的应用程序是关于   退出)或者如果你想更新   用户默认为磁盘上的内容   虽然你没有做任何改变。

答案 1 :(得分:0)

我认为问题是询问特定对象是否存储在用户默认值中,而不是知道数据是否已成功保存。

用户默认值只是一个字典,就其API而言,因此您可以尝试检索给定键的对象。如果返回的对象不是nil,那么显然已为该键存储了某些内容。相反,如果返回值为nil,则表示没有存储任何内容,您应该加载默认对象或执行其他类型的意外事件。