Core data 如何在restkit映射之后和保存到实体之前清除旧实体?

Core data 如何在restkit映射之后和保存到实体之前清除旧实体?,core-data,restkit,restkit-0.20,Core Data,Restkit,Restkit 0.20,在restkit中,在某些情况下,我希望在刷新之前清除实体。我使用下面的代码,它可以工作 [self clearcache]; //clear the entity [manager getObjectsAtPath:self.path parameters:self.parameters success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { [self finishedLoadi

在restkit中,在某些情况下,我希望在刷新之前清除实体。我使用下面的代码,它可以工作

[self clearcache]; //clear the entity
[manager getObjectsAtPath:self.path parameters:self.parameters success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
    [self finishedLoadingWithItems:[mappingResult array]];
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
}];
但现在我只想在映射完成后,但在将新项保存到实体之前清除缓存。 我尝试在下面的函数中使用clearcache,但不幸的是,这也会清除新项目

[self finishedLoadingWithItems:[mappingResult array]];

这取决于您希望何时进行清除(在所有请求之后?)


通常,您希望使用RestKit(添加到)的功能,其中指定要执行的获取请求,该请求返回应清除的对象。RestKit将在映射过程中运行此操作并删除结果对象。

最后,我编写了一次addFetchRequestBlock方法,它与addFetchRequestBlock几乎相同,但在执行时将被删除

[manager addFetchRequestBlockOnce:^NSFetchRequest *(NSURL *URL) {
}];

看起来fetch请求块只能添加,不能删除,因此我需要使用一个额外的标志,以便在我希望块清除实体时设置标志。是否有任何实例方法可以添加只执行一次的获取请求块?我写了一个方法addFetchRequestBlockOnce,我认为这是一个很好的API。(但我的版本只是一种变通方法)通常在获取请求上使用谓词。否则,可以编辑对象管理器,以便删除块或使用不同的对象管理器实例。考虑一个带有更改的拉请求,或者在GITHUB上提出一个问题来讨论修改。