我正在使用iOS上的RestKit开发一个待办事项列表应用程序,我已经添加了一个获取结果块,用于从此链接(http://restkit.org/api/latest/Classes/RKManagedObjectRequestOperation.html)
中删除官方类引用中的孤立对象现在文档说明每当RKManagedObjectRequestOperation
执行时,获取结果块将检查孤立对象并自动删除服务器上不存在的对象。
我使用以下代码发出请求,但问题是getObjectsAtPath
创建RKObjectRequestOperation
我需要RKManagedObjectRequestOperation
任何人都可以指导我在这种情况下做什么吗?< / p>
使用RKObjectRequestOperation
,如果孤立对象在服务器上不再存在,则不会被删除。
[[RKObjectManager sharedManager] getObjectsAtPath:@"/api/lists"
parameters:nil
success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) ...
映射:
RKEntityMapping *listEntityMapping = [RKEntityMapping mappingForEntityForName:@"List" inManagedObjectStore:managedObjectStore];
响应描述符:
responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:listEntityMapping method:RKRequestMethodGET pathPattern:@"/api/lists" keyPath:nil statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)];
JSON:
[
{
"list_id": "1",
"listName": "List Name 1"
},
{
"list_id": "2",
"listName": "List Name 2"
},
{
"list_id": "5",
"listName": "List Name 3"
},
{
"list_id": "7",
"listName": "List Name 4"
},
{
"list_id": "8",
"listName": "List Name 5"
},
{
"list_id": "11",
"listName": "List Name 6"
},
{
"list_id": "12",
"listName": "List Name 7"
}
]
答案 0 :(得分:0)
如果您获得的是RKObjectRequestOperation
而不是RKManagedObjectRequestOperation
,那么您使用的是错误的映射。基于与作为对象或实体映射的请求URL路径模式匹配的映射来选择操作。在您的情况下,您的映射需要是RKEntityMapping
实例。
答案 1 :(得分:0)
我认为您没有正确配置您的经理以使用CoreData(并创建NSManagedObject
而不是NSObject
s)。确保在要用于下载CoreData支持对象的管理器上设置managedObjectStore
。