RestKit:如何手动设置托pipe对象属性的值?

如何在对象pipe理器pipe理的情况下手动设置RestKit中托pipe对象属性的值?

我创build了一个具有核心数据持久性持久性存储的RKObjectManager。

我添加了一个RKEntityMapping和一个RKResponseDescriptor对象pipe理器。

现在我可以这样调用对象pipe理器:

[[RKObjectManager sharedManager] getObjectsAtPath:@"/path_to_ressource" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) { // success } failure:^(RKObjectRequestOperation *operation, NSError *error) { // report error }]; 

数据显示在一个UITableView(我正在使用NSFetchedResultsController)。 一切看起来不错,我的数据是持久的。

现在我想添加一个属性到依赖于响应描述符的keypath的实体。 我应该怎么做,在哪里?

我第一次尝试:

我将属性添加到核心数据实体,然后我在上面提供的代码的成功块中尝试了这一点:

 for (Entity *s in mappingResult.dictionary[@"CurrentEntities"]) { s.isCurrent = [NSNumber numberWithBool:YES]; } for (Entity *s in mappingResult.dictionary[@"OldEntities"]) { s.isCurrent = [NSNumber numberWithBool:NO]; } 

假设json看起来像这样:

 { CurrentEntities: [{ id: 10, title: "bhubhbhu"}, { id: 11, title: "ezeze"}, ...], OldEntities: [{ id: 0, title: "rf-reref"}, { id: 1, title: "vcvcvcvcv"}, ...] } 

在将新的本地属性设置为YES或NO之后,我确实可以在我的表格视图中看到结果,但看起来这些更改没有被保留。

那么有什么想法?

编辑:

那么,好像保存上下文使更改保持正确:

 NSError *error = nil; [[RKManagedObjectStore defaultStore].mainQueueManagedObjectContext saveToPersistentStore:&error]; 

编辑:

其实它看起来像我必须在每个对象更改后保存上下文,否则我得到核心数据错误。

正如你所发现的,你可以保存你所做的编辑。 由于您要设置的值不是基于用于下载数据的URL或有效内容数据(值)的内容中的任何内容,因此最简单的选项就是后处理和保存。 要与映射过程交互并注入值,将需要更多的代码。