Ios restkit 0.20:无法将NSManagedObject传递给getObject:方法

Ios restkit 0.20:无法将NSManagedObject传递给getObject:方法,ios,core-data,restkit,Ios,Core Data,Restkit,我只是试图从我的restful服务中检索一项(已确认工作) 我需要以某种方式传入URL的“25”部分。我想我应该走这条路。在RestKit中执行此操作的方法是使用RKObjectManager的getObject:方法 使用RESTKit0.22,我不知道如何调用getObject:方法,因为它需要一个完整的Person对象,不是吗?即使我只需要传入字符串“25” 所讨论的方法是:[self-getObject:personNSManagedObject-path:nil参数:nil成功:^(R

我只是试图从我的restful服务中检索一项(已确认工作)

我需要以某种方式传入URL的“25”部分。我想我应该走这条路。在RestKit中执行此操作的方法是使用RKObjectManager的getObject:方法

使用RESTKit0.22,我不知道如何调用getObject:方法,因为它需要一个完整的Person对象,不是吗?即使我只需要传入字符串“25”

所讨论的方法是:
[self-getObject:personNSManagedObject-path:nil参数:nil成功:^(RKObjectRequestOperation*operation,RKMappingResult*mappingResult)…

我不能只说“Person*Person=[[Person alloc]init],因为Person是一个NSManagedObject

但当我这么做的时候:

NSManagedObjectContext *moc = self.managedObjectStore.mainQueueManagedObjectContext;
NSEntityDescription *person = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:moc];
Person *personNSManObj = [[Person alloc] initWithEntity:person insertIntoManagedObjectContext:nil];
personNSManObj.id = 3;
我得到以下错误:

正在执行到临时目标objectID的对象映射。结果可能是 在未获得永久对象ID的情况下无法访问。 restkit.network:RKResponseMapperOperation.m:457检索失败 ID为0x1664ac90的现有对象


有什么想法吗?

您应该将新对象保存回持久性存储。数据加载和映射发生在不同的线程上,但将尝试将数据映射回提供的对象。由于对象已插入但未保存,因此它有一个临时托管对象id,RestKit尝试将其转换为对象,但无法保存。保存将在数据存储中创建一个“存根”对象,RestKit将使用响应数据完全填充该对象(假设成功)


另一种方法是提供一个包含所需键/值对的字典,该键/值对将插入路由。RestKit随后将为您创建目标对象。

嗨,Wain,哇,非常感谢您的帮助。我正在考虑使用字典路由。您能给我一个提示,说明我将在哪个类中提供此字典吗y?我在RKRoute文档中没有看到接受NSDictionary的参数。谢谢!路由与提供的类匹配,因此您当前与托管对象类匹配,但您可以将其更改为dictionary(或其他自定义对象)“@user798719您能接受这一正确答案吗?
NSManagedObjectContext *moc = self.managedObjectStore.mainQueueManagedObjectContext;
NSEntityDescription *person = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:moc];
Person *personNSManObj = [[Person alloc] initWithEntity:person insertIntoManagedObjectContext:nil];
personNSManObj.id = 3;