Restkit编辑插入coredata

Posted

技术标签:

【中文标题】Restkit编辑插入coredata【英文标题】:Restkit edit inserting in coredata 【发布时间】:2014-03-13 18:58:01 【问题描述】:

我使用restkit来消费一个web服务,但是当我得到数据时我想添加一些其他参数,我搜索了,我发现我应该实现一个叫做willsave的函数但我不知道怎么做

NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:brandId,@"brandId",categoryId,@"categoryId", nil];

[[RKObjectManager sharedManager] postObject:nil path:@"/mywebservice" parameters:params success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) 

    [self getProductsList];

 failure:^(RKObjectRequestOperation *operation, NSError *error) 

];

【问题讨论】:

这里有很多缺失的信息。描述您当前的托管对象属性、您从 WS 获得的信息、您希望添加的参数以及它们应该包含的数据。 willSaveNSManagedObject 的一个方法,您可以覆盖在调用上下文 save 方法时调用的方法。除非您真的知道自己在做什么并且这是适合您的解决方案,否则我建议您不要立即覆盖它。 那么你建议我做什么,我如何在插入数据库之前修改消耗的对象? RestKit Relationship Mapping by ID in URL 的可能重复项 【参考方案1】:

你不需要使用willSave,这取决于你想做什么......

您可以使用success 块,遍历mappingResult 中提供的结果,进行更改,然后将主线程MOC 保存到持久存储中。

willSaveNSManagedObject 上的一个方法。因此,您将在托管对象子类上实现它。这将导致更改被保存为映射过程的一部分,但它仅对派生值/时间戳真正有用。

【讨论】:

我从服务器下载了两个对象数组,我想建立它们之间的关系,,[第一,第二],所以当先消费并将其插入数据库时​​,我想要什么时候插入第二个告诉他首先指向对象,所以我可以获得与第一个相关的所有第二个 它们有什么关系?你能不配置映射来做吗? 问题是我把它们中的每一个都分开了,类别和产品,我从一个网络服务请求类别,然后我使用另一个网络服务的 categoryId 请求产品,但是我想将它们链接到数据库中,以便我可以选择特定类别的所有产品 那么你为什么不在问题中问这个问题并展示你是如何得到每一个的呢?您应该能够在映射期间使用 URL 路径中的类别 ID 来链接它们... 产品里面有来自类别的对象,并且类别里面有产品列表,但是这个对象是空的,我想在插入它们时将这个类别对象添加到产品中,这样我就可以选择

以上是关于Restkit编辑插入coredata的主要内容,如果未能解决你的问题,请参考以下文章

通过 RestKit 发布 ManagedObject 会导致“无法更新从未插入的对象”

Restkit + Core Data:每次应用启动时在 UITableView 中插入重复值

RestKit 在映射或实际插入 CoreData DB 之前比较本地对象和远程对象

RestKit 手动保存对象

RestKit 和核心数据 - 如何发布数据?

RestKit 发布嵌套的托管对象会创建重复项