【问题标题】:Mapping relationships with AFIncrementalStore与 AFIncrementalStore 的映射关系
【发布时间】:2013-05-16 03:13:28
【问题描述】:

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

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

所以我可以这样做:

myDocument.pages

myPage.document

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

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

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

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

获取新数据时是否必须手动链接这两者?我正在阅读 AFIncrementalStore 源代码,但没有发现任何问题。

想法?

【问题讨论】:

    标签: ios core-data afnetworking afincrementalstore


    【解决方案1】:

    好的,经过几个小时或逐行调试和阅读 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 就会遍历关系并自动查找关系“文档”并在返回的对象中查找该键。如果您的服务器密钥与您的核心数据属性不匹配,那么您可以覆盖 AFIncrementalStoreHTTPClient 协议方法之一来指定正确的对象。

    目前一切正常,如果有问题我会报告。

    希望对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-23
      • 1970-01-01
      • 2014-08-12
      • 1970-01-01
      • 1970-01-01
      • 2011-03-01
      • 2021-10-08
      • 1970-01-01
      相关资源
      最近更新 更多