【问题标题】:How can I refresh nsuserdefaults value after restore iphone via itunes?通过itunes恢复iphone后如何刷新nsuserdefaults值?
【发布时间】:2015-12-02 13:05:57
【问题描述】:

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

但是我发现了一个问题。

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

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

【问题讨论】:

  • 嘿!你到底有没有做到?

标签: iphone itunes restore devicetoken


【解决方案1】:

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

希望对您有所帮助,朱利安。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-18
    • 1970-01-01
    • 2014-09-17
    • 2020-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多