我正在处理的iPhone应用程序在应用程序目录中捆绑了20MB的图像,我需要随着时间的推移将新图像写入文档目录。
理想情况下,我想将初始文件夹移动到文档目录,复制文件夹意味着浪费20mb的用户磁盘空间。
如果失败,我将在文档目录中创建所需的结构并保留初始图像,但这意味着每次我想要显示图像时都要检查两个位置。
在构建图像路径时,有没有办法自动搜索应用程序包和文档目录?
答案 0 :(得分:1)
回答您的第一个问题:您无法移出应用程序包。对所述捆绑包的任何修改都会使签名无效,并且会使您的应用程序在除了越狱的iOS设备之外的所有设备上都无法正常运行。
现在,对于复制图像的挑战:要在主要包中找到一些东西,你可以这样做:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"myImage"
ofType:@"png"];
对于图像,你最好这样做:
UIImage *imageFromBundle = [UIImage imageNamed:@"MyImage.png"];
这将以一种直接加载图像的方式为您进行缓存。
我不知道为什么你要复制图像,但似乎你可能有一组初始图像可能会或可能不会被替换。我建议,然后,不要复制出捆绑包,先在Documents文件夹中查找图像,如果不存在,请将其复制出捆绑包。这允许您替换图像而无需从包中复制或修改包。
答案 1 :(得分:0)
AFAIK捆绑包是只读的。因此,虽然你的“移动”想法很好,但我相当肯定Apple目前不允许这样做。
有没有自动化的方法 搜索应用程序包和 建立一个文件目录 图像路径?
我可以说我已经为图像做了这个,但你必须自己创造魔法。我写了一个类,我将调用图像的名称作为参数。该类首先查看文档目录,然后查看该包,最后查看该网站的图像。当它找到图像时,它返回了UIImage。最初设置有点痛苦,但一旦到位它就非常有用,我很高兴我做到了。