2009-11-10 93 views
0

我在UIWebView中显示文本和图像。内容并不总是相同的。我使用包路径访问内容中的图像。对于内容版本的内容更新,我希望允许用户下载新内容(文本&图像)。这个新内容也将显示在UIWebView中。问题是我将不得不使用磁盘路径而不是使用捆绑路径的常见模式。除非有办法在运行时将图像重新打包到包中。将图像下载到包中?

一旦应用程序的下一个应用商店更新可用,所有先前下载的图像将位于应用程序包中。在此更新中,我将写入覆盖以前的内容并为图像使用包路径。内容将与图像路径完全相同。

任何人都可以提供一些洞察到这可能如何工作或更好的方法?

回答

5

据我所知,只要您的应用程序发布到App Store,您就不能在iPhone上重新打包捆绑包。所以换一种方式,将数据包中的数据放在文件系统上,以便在运行时更改它。

我对这个东西通常方法是:

  • 束起来的初始数据
  • 需要如果例程在iPhone上的文件系统中的版本文件的存在检查启动
  • 常规没有找到该文件的当前版本,所有数据将数据从文件系统复制到iPhone的文件系统
  • 参考我的应用程序,而不是使用束路径

所以,本质上你的包仅仅是一个传递机制,一种用你需要的东西来预加载文件系统的方法。一旦它在文件系统上,你可以改变你想要的任何东西。

1

同意本杰明 - 你不能改变你的包内容。
相反,您可以(也应该)将下载的内容保存到应用程序沙箱的Documents文件夹中。你可以得到它的路径是这样的:

// Look in Documents for an existing plist file 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 

此文件夹的内容,而且在更新过程中仍然存在,因此可能没有必要把下载的可选内容的应用程序包。

+0

谢谢。问题是我已经有很多内容引用应用程序包中的图像。展望未来,只有少量的更新将引用磁盘上的图像。我不能在1.2版本中部署所有图像以节省空间b/c获得版本1.3的人们需要下载所有这些图像。 – 4thSpace 2009-11-10 21:19:17

+0

我最后一句话有点困惑。 1.3的图像不会取代1.2的图像吗?或者你是在谈论节省应用程序下载空间本身? – 2009-11-10 21:22:52

+0

是的 - 这是关于下载。对于新用户,图片将始终需要位于应用程序包中。否则,他们将有分散的内容。 – 4thSpace 2009-11-11 01:06:44