您好我正在尝试为iphone构建一个阅读器应用程序,有点像NYTimes iphone应用程序或时代杂志或今日美国iphone应用程序。基本上我将解析包含文章的feed,将数据本地保存在数据库中并显示所有内容。
现在我刚刚开始使用Iphone应用程序开发,我想知道在这些应用程序中管理图像的最佳方法是什么。我想在本地保存每篇文章的图像。这是执行此操作的首选方法,将其保存到数据库或将其保存到文件系统。有很多图像,如果我将它存储在数据库的blob字段中,管理它们会更容易,但这会大大影响性能。将它保存到文件系统中,在应用程序文档目录中会给我更好的性能,但我想知道如何管理大量文件(保存它,跟踪特定文章的图像,删除文件等)
答案 0 :(得分:2)
来自Core Data Programming Guide:
但是,如果您能够将BLOB作为资源存储在文件系统上,并维护这些资源的链接(例如URL或路径),那就更好了。然后,您可以在必要时加载BLOB。
这个想法是懒洋洋地加载图像,只有当它们需要出现在屏幕上时。这在设备上非常重要。
考虑一次有多少个托管对象在内存中。实例化对象时,如果将图像保存为对象的一部分,它也将被加载到内存中并保留在内存中,直到对象变为故障。
关于如何确保删除托管对象时删除文件的问题的第二部分,请注册NSManagedObjectContextObjectsDidChangeNotification
和NSManagedObjectContextDidSaveNotification
并清理可从对象中获取的文件在NSDeletedObjectsKey
和NSUpdatedObjectsKey
。
答案 1 :(得分:0)
核心数据可能是最适合您的解决方案。处理FS(文件系统)会有点混乱。
搜索Apple的核心数据文档,您将获得所需的所有信息。
答案 2 :(得分:0)
NYTimes应用程序将图像存储在文件系统:缓存文件夹中。
对于大量图像,数据库可能比文件系统更混乱。文章图像也被认为是懒惰的,可替换的数据。将大量数据存储在数据库中是不负责任的,因为你在设备,用户的计算机(备份)以及可能的iCloud上占用了永久磁盘空间。