2013-04-08 63 views
0

我正在製作我的第一個iOS應用程序。我有一個問題。在我的應用程序中,我想要保存應用程序的當前狀態:完成的級別,達成的分數,金錢,應用程序內購買等在Settings.plist中。問題是,我如何放置這個plist,以便如果用戶更新應用程序,他/她不會丟失這些設置。我閱讀了應用程序沙箱,但我不明白 它如何工作,以及如何從Xcode管理它。如何更新除應用程序以外的iOS應用程序

回答

2

您應該將這些設置存儲在NSUserDefaults中。當安裝新的應用程序版本時,它們會保留,所以您不會遇到任何問題。

+0

我不能這樣做嗎? – kommancs96 2013-04-08 13:54:22

+0

爲什麼你想這樣做,否則 – Jona 2013-04-08 14:16:48

+0

這是最簡單的方法 - 爲什麼你有這樣做的問題? – TheEye 2013-04-08 14:23:24

0

兩點:

一)當你更新你的應用程序在其提交的相同的應用程序由舊版本創建的文件的新版本應用商店也不會丟失後。因此,您可以將任何您喜歡的內容存儲在應用程序的Document或Library目錄中,並期望它在更新後仍然存在。 Library/Caches目錄不會被iTunes備份或恢復,所以不要放置那些無法重新創建的東西。如果您提交不同版本的應用程序(不是更新,而是新應用程序,因此您在應用程序商店中有兩個單獨的應用程序,可能是免費和付費的),但我無法知道新版本可以訪問第一個版本創建的文件。

b)用戶很容易讀取,刪除或更改在Documents/or Library /中創建的任何文件。它可以通過他/她的Mac上的應用程序完成,例如iExplorer(可從macroplant.com下載)。所以請注意,如果文件是可讀的,.plist文件是用戶可讀的,那麼用戶可以改變它以提高他/她的分數,獲得更多的消耗品或其他。您可以通過加密數據或以某種方式模糊含義或通過某種校驗和方案來防止這種情況,這樣您至少可以檢測到它已更改。任何這些措施當然都涉及複雜問題,可能不值得麻煩。

順便說一句...如果你正在開發一個使用數據文件的應用程序iExplorer是一個很好的調試工具。除了我學會了如何使用它並希望它繼續得到支持之外,我對它沒有既得利益。有可能是其他應用程序做同樣的事情,但這個工程很好,並且快速和易於使用。

相關問題