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

时间:2013-06-14 14:07:57

标签: ios restkit nsmanagedobject

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

我想配置数据库中剩余的旧条目的删除行为。

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

在我的情况下,当某些对象必须被删除时,它们不会被服务器返回,我想让我的客户端应用程序理解这意味着它应该删除它们。

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

编辑:

好的,我查看了that link,并将此获取请求块添加到了我的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,但这里的目的究竟是什么?

1 个答案:

答案 0 :(得分:5)

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