Stackoverflow 中的一些讨论表示,将图片存储在数据库中是一个坏主意(因为随着时间的推移,图像数量会变大并可能导致应用程序崩溃)。所以,要么
a.图像可以存储在 iPhone 本身中,并且只有其位置可以存储在数据库中 潜在问题:图像可能会被删除(在应用程序之外)并且应用程序下次可能无法加载它们
b.图像可以缩小到小尺寸(例如100*100像素)并存储在数据库中 潜在问题:如果图像缩小到仅 100x100 像素,尺寸会成为问题吗?
c.同时执行 (a) 和 (b)。因此,图像的小版本将存储在数据库中,然后在应用程序中检索并显示,而如果用户选择查看图像的原始版本(其概率很低),那么将获取该图像来自本地目录并显示。
请问您的建议?在我看来,(c)似乎是一个不错的选择,以防(a)提到了潜在的问题。
最佳答案
这实际上取决于图像的来源。它们是在用户安装应用程序后从互联网下载(或从用户的库/相机导入),还是从 App Store 与应用程序捆绑在一起?
如果正在下载/导入图像,最佳解决方案是按照 http://developer.apple.com/library/ios/#qa/qa1719/_index.html 中的建议将图像存储在文件系统中。
基本上,如果图像无法替换或重新创建,请将它们存储在 <Application_Home>/Documents
中目录并且不要设置Do Not Backup
属性。这些项目将备份到 iCloud,即使应用程序从设备中删除,这些数据也会至少保留一段时间。 (请记住,您的用户没有无限的 iCloud 空间。请负责。)
-但是-
如果图像与应用程序捆绑在一起,最好的解决方案是将它们直接导入到您的 Xcode 项目中并从那里引用它们。这样您就知道即使用户删除并重新安装应用程序,它们也始终可用。
只要有可能,我绝对不会将图像数据存储在数据库中。在大多数情况下,都有更好、更有效的方法。
关于iphone - 从应用程序将图片/图像存储在 SQLite DB 中是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10633450/