【问题标题】:Delete Managed Object using Core data/Restkit使用 Core data/Restkit 删除托管对象
【发布时间】:2013-08-06 11:10:18
【问题描述】:

我必须删除服务器不再返回的本地存储数据(孤立对象)。我在初始化对象管理器时使用以下代码。

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

            NSDictionary *argsDict = nil;
            BOOL match = [pathMatcher matchesPath:[URL relativePath] tokenizeQueryStrings:NO parsedArguments:&argsDict];
            if (match) {
                NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Articles"];
                return fetchRequest;
            }

            return nil;
        }];

在上面的代码中,'match' 条件返回 TRUE。但 Fetch Request 不会删除服务器未返回的孤立对象。

【问题讨论】:

    标签: iphone core-data restkit


    【解决方案1】:

    您想使用记录在 here 中的“获取请求块和删除孤立对象”方法。

    【讨论】:

    • 感谢您的回复。我已在 My AppDelegate 中添加了该功能。但是当 url 匹配时,它会从服务器返回所有对象,包括已删除的对象。有什么我需要做的吗?我已经更新了我的 qn.pls 外观。
    • 它应该返回所有项目。 RestKit 会将获取结果与服务器结果进行比较,并删除服务器未返回的项目。
    • 但是当我检查我的数据库时。旧数据仍然存在于表中。
    • 保存MOC时是否触发表更新?并且您检查(调试)了获取请求是否已创建并返回?
    • 不,我没有触发表更新。此外,当我调试 fetch 请求时,它返回 (entity: Articles; predicate: ((null)); sortDescriptors: ((null)); type: NSManagedObjectResultType; )
    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2011-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多