我在NSUserDefaults中存储一个值,用于检查是否是第一次启动应用程序。我在App Delegate中检查了这个值,它在大多数情况下都能正常工作。但是,我预计如果我从设备中删除了应用程序,这个值就会清除,以便在重新安装后第一次启动它时,它的行为就好像从未在该设备上安装过一样。但是,存储在NSUserDefaults中的值仍然存在。现在我知道如何以编程方式清除NSUserDefaults但是我该如何做到这一点仍然能够判断它是否是第一次启动应用程序(并且在删除后第一次启动时被检测为首次启动)?
编辑:此问题适用于实际的物理设备(不是模拟器)。从模拟器中删除应用程序DID正确清除NSUserDefaults。但是,我昨天更换了我的iPhone,新手机没有出现这个问题。 NSUserDefaults正在正确清除。不知道是什么解决了问题,但我会接受它。
答案 0 :(得分:8)
对于在设备上遇到相同问题的任何人。
如果您在同一组下有多个应用程序并且所有应用程序正在使用应用程序组(功能下为ON),则您必须从设备中删除所有应用程序才能清除用户默认值。
由于用户默认值是共享的,即使其中一个应用程序在设备上,也不会被删除,因为该应用程序将使用用户默认设置。