与AFIncrementalStore映射关系

时间:2013-05-16 03:13:28

标签: ios core-data afnetworking afincrementalstore

我正在将AFIncrementalStore集成到我的项目中,但我很难弄清楚如何让关系发挥作用。

假设我有两个模型:Document和Page。一个文档有很多页面(一个多页)。每个模型与另一个模型具有反比关系。

所以我能做到:

myDocument.pages

myPage.document

我正在尝试获取属于文档的所有页面。我有一个AFIncrementalStore子类和一个实现必要方法的AFHTTPClient子类。

我可以看到调用正确的REST URI(例如/ documents /:id / pages)。我还可以看到页面被下载并存储到sql数据库的pages表中。

问题是两者之间没有关系。当我查看数据库时,外键列为空。

如果我执行myDocument.pages,它也不会返回任何内容。

获取新数据时是否必须手动链接这两个?我正在阅读AFIncrementalStore来源,但没有任何内容。

思想?

1 个答案:

答案 0 :(得分:3)

好吧,经过几个小时的调试和逐行阅读AFIS,我得到了它的工作,但它需要对REST API进行一些更改。

最初,我的API返回类似以下内容(示例):

GET /documents/12/pages

Response:
{
    title: "My Title",
    body: "Some body text ..."
}

但为了使其与AFIS很好地协同工作,我必须在那里添加对Document的引用,如下所示:

Response:
{
    title: "My Title",
    body: "Some body text ...",
    document: 
    {
        id: "12"
    }
}

只要在CoreData中正确设置了关系,AFIS就会遍历关系并自动找到关系“document”并在返回的对象中查找该键。如果您的服务器密钥与核心数据属性不匹配,则可以覆盖AFIncrementalStoreHTTPClient协议方法之一以指定正确的对象。

现在工作正常,如果出现问题我会报告。

希望能帮助其他人。