2015-12-02 30 views
1

我使用NSUserdefaults存儲設備令牌值,然後將此值發送到我的服務器。 我的應用程序檢查這個值是否存在。 如果該值不存在,我的應用程序會嘗試調用registerdevicetoken方法。如何在通過iTunes恢復iphone後刷新nsuserdefaults值?

但我發現了一個問題。

如果用戶通過iTunes恢復其iPhone,則會恢復NSUserdefaults值。 但是,存儲的設備令牌不是新設備的有效設備令牌,但我的應用程序無法識別該手機是否已通過iTunes重新安裝。

如何在用戶恢復iPhone時收集正確的設備標記?

+0

嘿!畢竟你管理了嗎? –

回答

0

好的。我們來看看文檔的文件夾方法。首先,讓我們來看看iOS應用程序的解剖。正如你在下面看到的有3個關鍵文件夾。 Apple Docs 完整的Documents and Libray文件夾得到備份,除非您專門在文件上調用命令而不是。這就是我們要做的。例如,創建一個文件,您可以撥打firstLaunch.txt。把這個文件放到Library/Application support /中。然後使用NSURLIsExcludedFromBackupKey鍵設置noBackUp標籤: -[NSURL setResourceValue:forKey:error:]使用NSURLIsExcludedFromBackupKey鍵。這會阻止文件備份。現在,你可以有一個簡單的if-else語句來檢查文件是否存在。如果是這樣,那意味着該應用程序已經運行並且令牌是最新的。如果沒有,請創建一個新的用戶令牌,然後再次創建該文件,並將其放入正確的文件夾中。清楚的是,這是您創建文件的唯一時間,因爲它只會在第一次啓動時以及在恢復後纔會被調用。你可以在Apple Docs找到更多的信息和圖像。

希望有幫助,朱利安。