2011-07-18 36 views
6

我目前有一个很大的.sqlite数据存储长字符串文本。大约160MB,完成后将增加到大约200MB。这是一个“只读”数据集。是否可以从我的iOS应用程序包中删除文件?

我现在所做的只是将该文件放在我的包中,并在运行时读取它。但是,这意味着应用程序要求您下载160MB。不是最佳的。

一个解决方案是gzip该文件,在捆绑包中运送gzip版本,在第一次运行时将其解压缩并放入Documents /文件夹中。这意味着你下载的时间要少得多,但是应用程序在设备上使用的总大小(gzip'd的大小+ ungzip的大小)显然不是最优的。

我想使用gzip解决方案,但在应用程序第一次运行后,我想要删除.gz版本。这可能吗?我如何实现它?另一个好的解决方案是什么?

回答

8

无法删除包中的文件。该应用程序必须经过签名,并且如果该软件包以任何方式修改,它都不会通过签名。

我能想到的唯一的其他解决方案是设置一个Web服务,并让您的应用根据需要下载部分内容。这可能是也可能不是一个可行的解决方案,具体取决于您的应用实际在做什么。

0

正如保罗所言,捆绑中的任何东西都是签名的一部分。 我看不到这个变化,因为它是签署应用程序的基本部分。

另一种经典的方法是尽可能地压缩捆绑包中的数据,以便在构建工作存储时将其解压缩。

相关问题