objective-c - RestKit POST 非对称 key 错误

标签 objective-c ios rest restkit

我在使用 RestKit 将对象发布到我的服务器时遇到问题。我正在使用昨晚的 RestKit 版本,但至少从去年开始这就是一个问题。我正在做的是尝试将新对象保存到服务器,但是当我这样做时,我在请求发送到服务器之前收到映射错误。问题是我的 JSON 响应键和 NSObject 属性是不对称的,尽管 RestKit 文档说它们不必如此。在添加新的 POST 命令之前,我用于下载 JSON 响应的 GET 命令就很好。 RestKit 对于非对称 key 映射没有任何问题,并且一切正常。但是,现在我尝试将 NSObject POST 返回到服务器,我收到 NSUknownKeyException 错误。如果我将 key 更改为对称,RKObjectMappingOperation 就会完成,并且 POST 将实际发送到服务器。这对我来说似乎是一个错误,但我想确保这不是发布的要求。

这是我的代码详细信息。这是映射:

RKObjectMapping* restaurantReviewMapping = [RKObjectMapping mappingForClass:[RestaurantReview class] ];
[restaurantReviewMapping mapKeyPath:@"restaurant_id" toAttribute:@"restaurantId"];
[restaurantReviewMapping mapKeyPath:@"title" toAttribute:@"title"];
[restaurantReviewMapping mapKeyPath:@"review" toAttribute:@"review"];

这是 NSObject:

@interface RestaurantReview : NSObject

  @property (nonatomic, retain) NSNumber* restaurantId;
  @property (nonatomic, retain) NSNumber* rating;
  @property (nonatomic, retain) NSString* title;

@end

从对象映射文档复制的 Post 命令:

[[RKObjectManager sharedManager] sendObject:review toResourcePath:fullRestaurantReviewUrl usingBlock:^(RKObjectLoader *loader) {
    loader.method = RKRequestMethodPOST;
    loader.delegate = self;
    loader.serializationMapping = [[RKObjectManager sharedManager].mappingProvider objectMappingForClass:[RestaurantReview class] ];
}];

最后,我在请求发送到服务器之前收到的错误:

2012-08-23 14:57:49.118 [61331:c07] D restkit.network:RKObjectLoader.m:374 POST or PUT request for source object <RestaurantReview: 0x74d55c0>, serializing to MIME Type application/json for transport...
2012-08-23 14:57:49.119 [61331:c07] D restkit.object_mapping:RKObjectMappingOperation.m:655 Starting mapping operation...
2012-08-23 14:57:49.184 [61331:c07] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<RestaurantReview 0x74d55c0> valueForUndefinedKey:]: this class is not key value coding-compliant for the key restaurant_id.'

这是一个错误还是我做错了什么?预先感谢您的帮助。

最佳答案

您想要为serializationMapping提供inverseMapping

关于objective-c - RestKit POST 非对称 key 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12100129/

相关文章:

rest - ETag 和集合

java - 如何在java spring REST上返回由对象包装的数组字节

objective-c - 防止 Obj-C 框架类命名与 Swift 中的 NSUnit 冲突

iphone - SQLite iPhone数据插入问题

objective-c - 如何绘制一个没有 unicode 表示的 NSGlyph?

ios 8.2 及更高版本的设置包不显示所选项目但默认

ios - 我不想在 UIWebview 中自动播放 play youtube video

ios - 动态编辑 3d touch 快捷方式列表

rest - 如何防止经过身份验证的用户欺骗restful api调用

ios - 从数组中删除匹配条目