从App中将图片/图像存储在SQLite DB中是一个好主意吗?

时间:2012-05-17 09:57:07

标签: iphone cocoa-touch sqlite

Stackoverflow中的一些讨论说,将图片存储在数据库中是一个坏主意(因为加班,图像数量变大,可能导致应用程序崩溃)。所以,要么

一个。图像可以存储在iPhone本身和只有它的位置可以存储在DB中        潜在问题:图像可能会被删除(在应用程序之外)&该应用可能无法在下次加载它们

湾图像可以缩小到较小的尺寸(例如,100 * 100像素)并存储在DB中        潜在问题:如果图像缩小到100x100像素,尺寸会成为问题吗?

℃。同时做(a)和& (b)中。因此,小型版本的图像将存储在数据库中,然后检索并放大。在应用程序中显示,而如果用户选择查看图像的原始版本(概率很低),那么将从本地目录&所示。

你的建议好吗?在我看来,(c)似乎是一个很好的选择,如果(a)有提到的潜在问题。

1 个答案:

答案 0 :(得分:2)

这实际上取决于图像的来源。是在用户安装应用程序后从Internet下载(或从用户的库/相机导入),还是从App Store捆绑了应用程序?

如果正在下载/导入图像,最佳解决方案是按照http://developer.apple.com/library/ios/#qa/qa1719/_index.html

中的建议将图像存储在文件系统中

基本上,如果无法替换或重新创建图像,请将它们存储在<Application_Home>/Documents目录中,不要设置Do Not Backup属性。这些项目将备份到iCloud,即使应用程序已从设备中删除,此数据仍会持续至少一段时间。 (请记住,您的用户没有无限的iCloud空间。请负责。)

-However -

如果图像与应用程序捆绑在一起,最好的解决方案是将它们直接导入Xcode项目并从那里引用它们。这样,即使用户删除并重新安装应用程序,您也知道它们始终可用。

我绝对不会在数据库中存储图像数据。在大多数情况下,只有更好,更有效的方法。

相关问题