2011-07-18 67 views
6

我目前有一個很大的.sqlite數據存儲長字符串文本。大約160MB,完成後將增加到大約200MB。這是一個「只讀」數據集。是否可以從我的iOS應用程序包中刪除文件?

我現在所做的只是將該文件放在我的包中,並在運行時讀取它。但是,這意味着應用程序要求您下載160MB。不是最佳的。

一個解決方案是gzip該文件,在捆綁包中運送gzip版本,在第一次運行時將其解壓縮並放入Documents /文件夾中。這意味着你下載的時間要少得多,但是應用程序在設備上使用的總大小(gzip'd的大小+ ungzip的大小)顯然不是最優的。

我想使用gzip解決方案,但在應用程序第一次運行後,我想要刪除.gz版本。這可能嗎?我如何實現它?另一個好的解決方案是什麼?

回答

8

無法刪除包中的文件。該應用程序必須經過簽名,並且如果該軟件包以任何方式修改,它都不會通過簽名。

我能想到的唯一的其他解決方案是設置一個Web服務,並讓您的應用根據需要下載部分內容。這可能是也可能不是一個可行的解決方案,具體取決於您的應用實際在做什麼。

0

正如保羅所言,捆綁中的任何東西都是簽名的一部分。 我看不到這個變化,因爲它是簽署應用程序的基本部分。

另一種經典的方法是儘可能地壓縮捆綁包中的數據,以便在構建工作存儲時將其解壓縮。

相關問題