核心数据请求的最佳实践&保存

时间:2016-07-31 14:12:09

标签: ios swift uitableview core-data

我对核心数据相当新鲜。这很令人困惑。

我想在Core Data中存储许多小尺寸图像。但是,我对最有效的方法感到困惑。

当我的视图控制器加载时,我从我的服务器获取一个我需要查看的图像列表并将它们加载到UITableView中。在我的表视图数据源中,我想检查图像是否在Core Data中可用。如果没有,我从服务器加载它,然后将其保存到核心数据。

虽然这是我的问题......

每次为单个图像创建新的核心数据请求是否有效?cellForRowAtIndexPath'叫做?另外,当我/从服务器检索到它时,将单个图像保存到核心数据是否有效?

或者最好从Core Data中检索所有图像,然后使用' cellForRowAtIndexPath'在检索到的图像中搜索所需的图像?

感谢您的帮助!试图了解核心数据。

2 个答案:

答案 0 :(得分:1)

如果图像很小(如~10KB),将它们存储在数据库中应该没问题。

根据我的经验,在需要时加载图像会使代码库更清晰,内存效率更高,并且在图像数量增加时可以更好地扩展。

当图像数量增加时,另一种方法(一次加载所有图像)会在某些时候变慢。

对于移动数据库,我建议使用Realm.io而不是核心数据。这真是太容易了,也不那么麻烦了。

答案 1 :(得分:1)

批量获取图像效率更高(或者图像的图像路径很大,并且您将二进制数据存储在数据存储之外)。这是为UI查找图像的方法。快速搜索内存中的图像列表以确定您是否有图像或需要从服务器获取图像是非常快的。以相同的方式从数据存储中单独获取它并不是那么快......

从服务器获取图像时,您可能会单独获取它们,然后将它们单独保存到数据存储也是合适的。