【发布时间】:2009-11-12 22:34:56
【问题描述】:
我正在开发一个需要缓存来自网络的一些图像的应用程序,这些图像可能是 100x100
我只需要知道哪个更好:
- 将图像作为文件存储在 iPhone 文件系统中
- 将它们作为 blob 与已保存在数据库中的其他数据一起存储在 sqlite Db 中。
感谢您的帮助。
【问题讨论】:
标签: iphone sqlite file storage
我正在开发一个需要缓存来自网络的一些图像的应用程序,这些图像可能是 100x100
我只需要知道哪个更好:
感谢您的帮助。
【问题讨论】:
标签: iphone sqlite file storage
Apple 绝对不推荐将图像存储在数据库中,文件系统实际上非常擅长在磁盘上定位文件(本例中为图像),这使其成为保存图像的最佳解决方案。这些与 Apple 技术布道者在巴黎举行的 iPhone Tech Talk 世界巡回赛中使用的词完全相同。如果只有几张图片,你可能会侥幸成功,但当数量可能变得非常大时,文件就是要走的路。
此外,您可以使用延迟加载方法来抓取磁盘的图像,这会将图像从磁盘加载到真正需要的时候。
[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"image.png"]]
编辑:imageWithContentsOfFile 不会立即加载图像,因此不会锁定线程,也不会缓存图像。另一种方法 imageNamed: 确实会锁定线程并立即加载图像,从好的方面来说,它确实会缓存图像。
【讨论】:
根据过去的经验,从文件系统存储(和检索)图像应该比从数据库快一点。至于是否易于处理和维护,只取决于您更熟悉什么:SQL 脚本或 iphoneOS 文件系统函数。
【讨论】: