【问题标题】:NSFetchRequest when a call returns multiple collections调用返回多个集合时的 ​​NSFetchRequest
【发布时间】:2014-04-28 00:47:34
【问题描述】:

我正在尝试设置 RestKit 以删除服务器上不存在但仍存在于本地缓存中的孤立对象,使用 NSFetchRequests 如RKManagedObjectRequestOperation 的文档中所述。

如果我有一个调用返回多个不同对象类型的集合,每个集合都使用键进行映射,RestKit 是否足够聪明来处理这个问题?还是仅适用于返回单一类型对象的调用?例如:

网址:/users?accessToken=someToken

回复:

{
    users: [],
    collection1: [],
    collection2: [],
    collection3: []
}

存储在每个集合中的对象类型在我的数据模型中是不同的实体。如何编写一个 NSFetchRequest 来允许我从本地缓存中删除不再位于 collection1collection2collection3 中的对象?

【问题讨论】:

    标签: core-data restkit nsfetchrequest restkit-0.20


    【解决方案1】:

    它和你做的一样聪明,但是,正如你从 docs/block 签名中看到的那样,你需要在 URL 中(或在数据存储中先前映射的内容中)有一些信息,以便你决定怎么办。

    如果您的所有信息都在 JSON 响应正文中,那么使用 fetch 请求块可能不适用于您,您可能需要根据映射结果执行您自己的 fetch 和删除(这将在 context 之后运行被保存而不是之前)。

    【讨论】:

    • 我的问题可能还不清楚。我会详细说明。
    • 另外,我最终还是根据mappingResult 的内容编写了自己的缓存清理程序,但我想看看是否有可能在公认的 RestKit 范例中做我想做的事情。
    • 问题是:对于请求/users...,你总是得到collection1/2/3,还是其他一些任意的collection?你能总是返回一个包含所有这些集合(并且它们是同一个实体)的 fetch 吗? RestKit 提供了这种删除功能,但它在许多方面受到限制......
    • 它们不是同一个实体。我认为这会阻止我使用此功能?
    • 是的,获取请求是特定于实体类型的,RestKit 只会为匹配的路径运行一个获取请求块。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2015-05-29
    • 2019-11-27
    • 2012-06-18
    • 1970-01-01
    • 2018-10-29
    相关资源
    最近更新 更多