我已经设法获取对象并将新对象发布到服务器,但 POST 在 iPhone 上生成错误。
这是我的设置:
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:entityMappingFoo pathPattern:@"/foos" keyPath:@"foos" statusCodes:RKStatusCodeIndexSetForClass(RKStatusCodeClassSuccessful)]; // Works well for GET
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[entityMappingFoo inverseMapping] objectClass:[Foo class] rootKeyPath:@"foo"]; // Client --> Server works
问题是(我认为):
- 当我 GET 时,后端期望 JSON 有一个复数键:(
{"foos":[...]}
这是有道理的,因为可能有多个对象) - 当我发布一个对象时,RestKit 期望后端的答案是单数:
{"foo":...}
. 然而,由于它使用与 GET 相同的 responseDescriptor,因此它会变成复数形式而丢失。
如果我在我的 POST 作品中替换keyPath:@"foos"
为...但不是我的 GET。keyPath:@"foo"
responseDescriptor
我该如何调和两者?