卸载应用后清除应用的NSUserDefaults
。相反,在重新安装应用程序时,让它忽略可能已存储的任何先前的NSUserDefault。也就是说,能够检测到那些NSUserDefaults属于自卸载以来的早期安装。
请注意,已卸载和重新安装的版本可能与完全相同的版本/版本号。
我正在存储一些代表特定参考数据文件加载时间戳的键值对,因此我的应用程序可以简单地跳过重新加载未更改的参考数据。
在开发过程中,我有时会从模拟器或设备中删除该应用,但不希望重置所有设置以清除NSUserDefaults
。
我意识到我可以采用一系列措施来确定我的参考数据加载是否完整且是最新的。我的目标是确定我的应用程序的安装/卸载之间是否可以轻松确定。
一旦安装(加载)参考数据,这不是故事的结尾,因为新补丁将存在并且基于它们的时间戳,我将需要确定是否忽略或是否进行更新或创建风格导入。
答案 0 :(得分:2)
卸载应用程序时会自动清除NSUserDefaults,如果您卸载应用程序,它们永远不会保留。因此,当您重新安装应用程序时,您无需检测到应用程序已卸载,NSUserDefaults将为空。
如果您希望在应用安装之间保留值,则可以使用KeyChain。
答案 1 :(得分:0)
应用程序只能读取/写入自己的属性列表文件,而不是使用NSUserDefaults
,这个文件会因卸载而被吹走。
我们可以在该属性列表中存储时间戳以便首次启动,以便应用程序可以确定何时应用此当前安装。 NSUserDefaults
数据库中的相同密钥将代表应用程序的首次安装。两个相似但不同的信息。
结合这两者,我们可以在NSUserDefaults中存储一个应用完全重新安装次数的计数,如果我们想知道的话。
除此之外:写出问题肯定有助于在自己的脑海中澄清问题!