从设备中删除应用程序不会清除NSUserDefaults。

8
我在NSUserDefaults中存储一个值,用于检查应用程序是否首次启动。我在我的AppDelegate中检查这个值,在大部分情况下都可以正常工作。然而,我希望当我从设备中删除应用程序时,这个值会被清除,以便在重新安装后首次启动时表现得好像它从未被安装在该设备上一样。但是,存储在NSUserDefaults中的值仍然存在。现在我知道如何通过编程方式清除NSUserDefaults,但是我该如何做才能告诉它这是第一次启动应用程序(并且在被删除后的第一次启动被检测为第一次启动)?
编辑:这个问题发生在实际的物理设备上(不是模拟器)。从模拟器中删除应用程序确实正确地清除了NSUserDefaults。然而,昨天我更换了我的iPhone,新手机没有出现这个问题。NSUserDefaults现在已经正确清除了。不知道是什么解决了这个问题,但是我很高兴。

1
你能分享一些代码吗?我在我的应用程序中经常使用这种方式,通过NSUserDefaults检查应用程序是否是第一次安装,以前从未遇到过这样的问题。 - Yucel Bayram
1个回答

16

对于在设备上遇到相同问题的任何人。

如果您在同一组下有多个应用程序,并且所有应用程序都使用应用组(在功能下启用),则必须从设备中删除所有应用程序,以便清除用户默认设置。

由于用户默认设置是共享的,即使设备上有一个应用程序也不会被删除,因为该应用程序将使用用户默认设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接