1

我正在开发一个应用程序,它通过在线搜索在数据库中存储大量图像。当一次有 5000x4 图像存储在数据库中时,应用程序崩溃。我想知道的是,是数据库超出了某个(有限)大小,还是在数据库上执行了太多活动导致它崩溃。

PS:它在模拟器中运行良好。

4

1 回答 1

1

1) 如果总数据库大小只有几百兆,那么您可以安全有效地使用 SQL 支持的核心数据存储库来存储图像。

2)当你开始接近一个或更多的演出时,你应该将较大的(或所有)图像保存在文件中,并使用 Core Data 保留对图像的引用(文件路径或 URL)。执行此操作的方法是(对于 ios 5.1 和更高版本)在“应用程序支持”目录(您可能需要创建)中创建一个目录,将其标记为不包含在 iCloud 备份中,并将图像存储在那里. 通过这种方式,您可以保留大量数据(假设用户不会生气并删除您的应用程序)。

编辑:我刚刚读了你的评论。假设有大量的小 (8K) 图像,如果问题是让它们同时处于活动状态(也就是说,您一次设置所有实体属性,而不是长时间),那么您可能需要使使用“refreshObject:mergeChanges:”的实体“故障”。您可以在 Core Data Programming Guide 中阅读有关此内容的内容以及其他减少内存占用的技巧。

于 2012-09-11T11:58:32.283 回答