核心数据。如何组织两个源之间的关系。 (一个有另一个使用的图像的网址)
Posted
技术标签:
【中文标题】核心数据。如何组织两个源之间的关系。 (一个有另一个使用的图像的网址)【英文标题】:Core data. How to organize relations beetween two resources. (one has urls of images used by another) 【发布时间】:2012-09-27 20:27:13 【问题描述】:我正在为 ios 开发一个类似于 Forthsquare 的应用程序。使用 Core Data 我正在为两种资源准备方案:地点和类别。每个地方都属于类别。每个类别都有 *image_url* 字段,其中包含指向图像(酒店、餐厅等)的链接,因此地图上显示的每个地点都使用其类别图像作为注释标记。
问题是选择什么方法以及如何组织这些资源之间的关系以缓存类别图像(通过 *image_url* 字段获取),因此它们可以被所有具有相同类别的地方重复使用而无需每次加载每个给定地点时都需要检索类别图像吗?
对于 iOS 和 Core Data 的新手,我想知道是否有任何好的做法可以完成此类任务。
谢谢。
【问题讨论】:
你看过关于缓存图像的 ASIHTTPRequest。 ***.com/questions/5078193/…。还是您想将图像存储在核心数据中?您是否还需要了解存在的关系类型?看来你需要一个类别到多个地方的关系) 【参考方案1】:在类似情况下,我在我的应用程序中所做的是将一些属性添加到类别(请注意,如果图像“小”,您可以将图像数据直接保存在核心数据中,或者将其保存在磁盘和图像的文件路径中如果它“大”):
bool fetchingImage
NSInteger 类别ID
url(从中获取)
imageData 或 filePath
创建类别并分配 url 后,您可以获取图像(在后台)并将 fetchinImage 标志设置为 yes。或者你可以等到第一个对象请求图像,在这种情况下你返回 nil 但启动获取。
当图像最终到达并在此实体中设置它时,您会在主线程上发送通知,说明 categorID 现在有图像。任何监听它的人都可以请求该图像并使其可见。
【讨论】:
以上是关于核心数据。如何组织两个源之间的关系。 (一个有另一个使用的图像的网址)的主要内容,如果未能解决你的问题,请参考以下文章