6

我正在使用 RestKit RKObjectManager 从我的服务器获取数据并存储在核心数据中(请参阅我的另一篇文章

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

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

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

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

编辑:

好的,我查看了那个链接,并将这个获取请求块添加到我的 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,但它的目的到底是什么?

4

1 回答 1

5

您想查看此页面上的“获取请求块和删除孤立对象”部分。它要求你使用一个RKObjectManager(你说你是)并描述了你告诉 RestKit 如何在数据存储中查找应该删除的内容的方式(它检查并且不删除它刚刚从服务器)。

于 2013-06-14T15:49:09.880 回答