ios - RestKit:如何去除核心数据条目以保持内容与服务器同步?

标签 ios restkit nsmanagedobject

我正在使用 RestKit RKObjectManager 从我的服务器获取数据并存储在核心数据中(参见我的其他 post)

我想配置删除保留在数据库中的旧条目的行为。

我看到 RKEntityMapping 类中有一个 deletionPredicate 属性,但我知道它仅在服务实际返回要删除的标记为“待删除”的对象时使用。 (我说得对吗?)

在我的例子中,当某些对象必须被删除时,它们只是没有被服务器返回,我想让我的客户端应用程序明白这意味着它应该删除它们。

这可能吗?如果是这样,怎么做到的?

编辑:

好的,我看了一下 that link我将这个获取请求 block 添加到我的 RKObjectManager 中:

[[RKObjectManager sharedManager] addFetchRequestBlock:^NSFetchRequest *(NSURL *URL) {

    RKPathMatcher *pathMatcher = [RKPathMatcher pathMatcherWithPattern:@"/path_to_ressource"];

    NSDictionary *argsDict = nil;
    BOOL match = [pathMatcher matchesPath:[URL relativePath] tokenizeQueryStrings:NO parsedArguments:&argsDict];

    if (match) {

        NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Entity"];
        fetchRequest.sortDescriptors = @[ [NSSortDescriptor sortDescriptorWithKey:@"entityId" ascending:YES] ];
        return fetchRequest;
    }

    return nil;
}];

我保留了 sortDescriptor 但它的目的到底是什么?

最佳答案

您想查看“获取请求 block 和删除孤立对象”部分 on this page .它要求您使用 RKObjectManager(您说的是)并描述了您告诉 RestKit 如何在数据存储中查找应删除的内容的方式(它会检查但不会删除)删除它刚从服务器收到的东西)。

关于ios - RestKit:如何去除核心数据条目以保持内容与服务器同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17110445/

相关文章:

objective-c - 如何处理 RestKit 中的空对象 {}

ios - 将自定义类对象存储在核心数据中

objective-c - -> 在 Objective-C 中意味着什么

ios - UITableViewCell背景色动画

core-data - NSManagedObject:我应该使用 transient 还是常规@property?

objective-c - NSManagedObject 的自定义初始值设定项

cocoa-touch - NSManagedObjectContextDidSaveNotification 在 iOS 7 中未触发

ios - 在 Bridgind header 内导入在特定情况下不适用于 ParseFacebook

ios - RestKit 将对象 POST 到服务器,但服务器收到空的 GET 请求

ios - 当我将架构更新为 arm64 时,Restkit 失败