1

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

例如,假设我primaryKeyAttribute在 RestKit 中为组织实体正确设置了一个。例如,如果我执行 GET 操作,/organizations/我会得到/organizations/1//organizations/2//organizations/3/返回的条目。假设我/organizations/稍后做一个 GET 并且只获取条目/organizations/1//organizations/3/返回。`/organizations/2/ 已在服务器上删除。

我希望 RestKit 删除我的核心数据记录/organizations/2/。这是 RestKit 所做的还是我必须实现此行为?如果我使用的是 reboot-networking-layer 分支,这是否会发生任何变化?RestKit 中是否有任何设置会影响此行为?

4

1 回答 1

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 的位置相同)。在那里执行此操作后,所有其他调用将自动删除孤立对象。

于 2012-12-18T06:44:38.970 回答