2009-11-12 51 views
2

我正在开发,需要从网页图像可能是100x100的iphone最好的方式来存储图像

我只需要知道这是缓存一些图像的应用程序更好:

  1. 将图像作为文件存储在iPhone文件系统中
  2. 将它们作为blob存储在sqlite Db中,以及其他已保存在数据库中的数据。

感谢您的帮助。

回答

4

苹果绝对不推荐将数据存储在数据库中,文件系统实际上非常擅长在磁盘上查找文件(这种情况下的图像),这使其成为保存图像的最佳解决方案。这些与苹果技术传播者在巴黎iPhone技术讲座世界巡回演唱会中使用的完全相同。如果只有几张图片,您可能会忽略它,但是当数字可能变得相当大时,文件就是要走的路。

此外,您可以使用延迟加载方法来获取磁盘映像,这会延迟将映像从磁盘加载到实际需要的时间。

[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.png"]] 

编辑:imageWithContentsOfFile没有一次加载图像,因此没有锁定线程,它也不缓存图像。另一种方法imageNamed:确实锁定了线程并立即加载图像,在明亮的一面,它会缓存图像。

+0

你确定imageWithContentsOfFile做延迟加载吗?文档没有提到任何有关这方面的信息。 – 2009-11-12 14:25:20

+0

iPhone技术讲座中的一个会议讨论了性能,这是他们谈论的一点。 – 2009-11-12 14:32:46

+0

100%同意,不要将图像存储在数据库中。我在1st时做过,然后转向使用文件系统,看它是否会提高性能,而男孩是否曾经这样做过。 – Shizam 2010-04-14 02:54:18

1

从过去的经验来看,从文件系统存储(和检索)图像应该比从数据库快一点。至于易于处理和维护,它仅取决于您更熟悉的内容:SQL脚本或iPhoneOS文件系统功能。