尝试使用NSUserDefaults类的"+resetStandardUserDefaults"来将默认值重置为其“工厂”设置,但结果证明这不是合适的方法。从SO中的一些存档讨论中发现,我们应该使用实例方法“removeObjectForKey”来删除用户的设置。
但我只是好奇并希望有人能解释“+resetStandardUserDefaults”的实际用途。已经阅读了有关此内容的参考网页手册,但它非常简短,我似乎没有真正理解其含义...
尝试使用NSUserDefaults类的"+resetStandardUserDefaults"来将默认值重置为其“工厂”设置,但结果证明这不是合适的方法。从SO中的一些存档讨论中发现,我们应该使用实例方法“removeObjectForKey”来删除用户的设置。
但我只是好奇并希望有人能解释“+resetStandardUserDefaults”的实际用途。已经阅读了有关此内容的参考网页手册,但它非常简短,我似乎没有真正理解其含义...
在某个地方(通常是在应用程序委托+initialize中),您声明标准用户默认值(首次启动时应用程序的首选项)。 +resetStandardUserDefaults使您的应用程序意味着它是第一次启动,并使用您在应用程序委托中声明的用户默认值。
以上是错误的答案
正如Apple的文档所说:
同步对共享用户默认对象所做的任何更改并将其从内存中释放
重置部分是指standardUserDefaults对象在内存中被销毁,因此下次使用[NSUserDefaults standardUserDefaults]
时,您会从文件系统中获取一个新的对象,但它与任何首次启动行为无关。
如果将其重命名为flushDefaultsToDisk或类似名称,则调用将有意义。这是我迄今为止看到的最具误导性的iOS SDK部分。
我在原地进行了更正,因为这个问题在搜索中排名很高,我不想把更正放在评论中,以免有人没有看到。