在 RestKit 将其保存在核心数据中之前拦截成功的响应(可能的回调)

Posted

技术标签:

【中文标题】在 RestKit 将其保存在核心数据中之前拦截成功的响应(可能的回调)【英文标题】:Intercepting a successful response (possible callback) before RestKit saves it in core data 【发布时间】:2015-12-08 02:24:49 【问题描述】:
[[RKObjectManager sharedManager] getObjectsAtPath:@"/mypath/objects" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) 
    // Use objects that are returned.
 failure:^(RKObjectRequestOperation *operation, NSError *error) 
    // Handle error
];

RestKit 的这个方法会执行请求、映射、保存到核心数据,并在保存后执行成功回调。我想知道的是在RestKit自动将其保存在核心数据中之前,我可以用来获取响应并执行回调的方法。我仍然希望能够使用 RestKit 的功能来进行映射和保存,但我想在它执行数据保存之前拦截或至少获得一个回调。

【问题讨论】:

做什么?最终目标是什么? 【参考方案1】:

我找到了一种方法,方法是在映射开始之前实现 RKManagedObjectRequestOperation 的回调块,因为这将在成功的 HTTP 响应之后和自动保存到核心数据之前调用:

[managedObjectRequestOperation setWillMapDeserializedResponseBlock:^id(id deserializedResponseBody) 

    //do something

    return deserializedResponseBody;
];

【讨论】:

以上是关于在 RestKit 将其保存在核心数据中之前拦截成功的响应(可能的回调)的主要内容,如果未能解决你的问题,请参考以下文章

多个对象没有得到保存的核心数据restkit

Restkit 的核心数据 [重复]

将更改 NSManagedObject 保存到核心数据失败

RestKit 内存核心数据存储的配置

使用 managedObjectCache 时的 Restkit 映射

RestKit - 仅在第二次调用时将缓存保存到核心数据