我希望有一个If
语句,可以告诉我是否保存了NSUserDefaults。
答案 0 :(得分:5)
NSUserDefaults
的重点是,它可以在没有您干预的情况下透明地为您保存数据,因此您无法询问它是否保存了数据。
但是,您可以通过调用[[NSUserDefaults sharedUserDefaults] synchronize];
来强制保存,BOOL
会返回{{1}},表示保存是否成功。该方法的文档说:
因为这种方法是自动的 定期调用,使用 这种方法只有你不能等待 用于自动同步(for 例如,如果您的应用程序是关于 退出)或者如果你想更新 用户默认为磁盘上的内容 虽然你没有做任何改变。
答案 1 :(得分:0)
我认为问题是询问特定对象是否存储在用户默认值中,而不是知道数据是否已成功保存。
用户默认值只是一个字典,就其API而言,因此您可以尝试检索给定键的对象。如果返回的对象不是nil
,那么显然已为该键存储了某些内容。相反,如果返回值为nil
,则表示没有存储任何内容,您应该加载默认对象或执行其他类型的意外事件。