我正在创建一个应用程序,用户可以在其中拍照并添加标题和说明。但现在我需要存储图片和标题。我已经尝试制作一个包含标题,描述和图像属性的对象。
完成后,我使用UserDefaults保存一系列自定义对象及其中的信息。我的想法是在另一个视图中显示一个表格视图,其中包含用户在单元格上拍摄的所有内容和图片。我尝试使用用户默认值获取信息。它一直运行良好,直到用户保存太多图片。当带有tableview的viewController加载时,我的应用程序变慢,最终崩溃。
我想问题是当我用所有自定义对象加载所有数组时,所有图片都被加载到内存中,尽管它们没有被用户显示。所以我认为这不是制作我想做的最佳方式。
有没有什么方法可以更好地制作我正在制作的内容或更有效地存储数据,并在不使用设备的所有内存的情况下在tableview中使用它?
我再次从0开始制作应用程序。
您能告诉我如何有效地存储数据和图像吗?
答案 0 :(得分:0)
有几种方法可以永久存储设备上的用户数据,以便在应用和手机重启后能够存活。 NSUserDefaults通常用于少量数据,例如用户首选项。
当需要存储大量数据时,特别是像照片这样的大型二进制对象时,您需要决定要使用哪种设计。一种选择:
您可能遇到的另一个问题是您尝试为用户一次性加载所有的照片。正如您所发现的,一旦您拥有超过一些照片,这个系统就会崩溃。您需要一些机制一次只加载几张照片,最好只是那时用户需要显示的照片。
因此,例如,如果您要在桌面视图中显示照片,则只需要在任何给定时间加载表格中可见的10-15张照片。
答案 1 :(得分:-1)