如何通过iTunes恢复iphone后刷新nsuserdefaults值?

时间:2015-12-02 13:05:57

标签: iphone itunes restore devicetoken

我使用NSUserdefaults存储设备令牌值,然后将此值发送到我的服务器。 我的应用程序检查此值是否存在。 如果该值不存在,我的应用会尝试调用registerdevicetoken方法。

但我发现了一个问题。

如果用户通过iTunes恢复他/她的iPhone,则会恢复NSUserdefaults值。 但是,存储的设备令牌不是新设备的有效设备令牌,但我的应用无法识别该手机已通过iTunes重新安装。

当用户恢复iPhone时,如何收集正确的设备令牌?

1 个答案:

答案 0 :(得分:0)

好。让我们采用文档的文件夹方法。首先,让我们来看看iOS应用程序的解剖结构。如下所示,有3个关键文件夹。 Apple Docs 除非您专门调用文件上的命令,否则将备份完整的Documents和Libray文件夹。那就是我们要做的。例如,创建一个可以调用firstLaunch.txt的文件。将此文件放入库/应用程序支持/。并使用以下命令设置noBackUp标记: -[NSURL setResourceValue:forKey:error:]使用NSURLIsExcludedFromBackupKey密钥。这将阻止文件备份。现在,您可以使用简单的if-else语句检查文件是否存在。如果是,那意味着该应用程序已经运行且令牌是最新的。如果没有,请创建一个新的用户令牌,然后再次创建该文件,将其放入正确的文件夹中。要清楚,这是您应该创建文件的唯一时间,因为它只会在第一次启动时和恢复后调用。您可以在Apple Docs找到更多信息和此图片。

希望有帮助,朱利安。