2016-07-31 118 views
2

我对核心数据相当陌生。这很混乱。核心数据请求和保存的最佳实践

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

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

这里是我的问题,但...

它是有效的,使单个图像每次“的cellForRowAtIndexPath”新的核心数据请求被称为?此外,如果从我的服务器检索到单个映像到核心数据是否有效?

或者是从Core Data中检索所有图像,然后在检索到的图像中使用'cellForRowAtIndexPath'搜索它需要的图像会更好吗?

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

回答

1

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

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

+0

谢谢你的回应!我认为,当你说在内存中搜索它们比从存储中搜索时更快。 – justColbs

1

如果图像很小(如〜10KB),应该可以将它们存储在数据库中。

根据我的经验,当需要加载图像时,会导致代码基础更清晰,内存更加高效,并且在图像数量增加时可以更好地缩放。

另一种方法(一次加载所有图像)在图像数量增加时的某个点会变慢。

对于手机数据库,我建议使用Realm.io替代核心数据。它更容易,更少麻烦。

+0

谢谢你的回应! – justColbs