RestKit删除语义

时间:2012-10-01 00:52:42

标签: core-data restkit

将RestKit与Core Data一起使用时,删除语义是什么?

例如,假设我在RestKit中为组织实体正确设置了primaryKeyAttribute。如果我进行GET,比如/organizations/,我会收到/organizations/1//organizations/2//organizations/3/的条目。假设我稍后在/organizations/进行GET,只获得/organizations/1//organizations/3/的条目。 `/ organizations / 2 /已在服务器上删除。

我希望RestKit能够删除/organizations/2/的核心数据记录。这是RestKit实现这种行为所做的或者我必须做的事情吗?如果我使用reboot-networking-layer分支,这会以任何方式改变吗? RestKit中是否有任何设置我应该注意这会影响这种行为?

1 个答案:

答案 0 :(得分:2)

您需要实现FetchRequests才能删除这些对象。这是一个简单的例子:

    [objectManager addFetchRequestBlock:^NSFetchRequest *(NSURL *URL) {
    RKPathMatcher *pathMatcher = [RKPathMatcher pathMatcherWithPattern:@"/organizations"];

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

    if (match) {
        NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Organization"];
        return fetchRequest;
    }

    return nil;
}];

我在ApplicationDelegate中执行此操作(我设置RestKit的位置相同)。在那之后,所有其他调用将自动删除孤立对象。