我使用下面的代码发布了一个托管对象。在服务器上,我没有得到任何回复,除了200,所以没有响应对象的映射。
[self.objectManager postObject:invitation path:@"/path" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
NSLog(@"success");
} failure:^(RKObjectRequestOperation *operation, NSError *error) {
NSLog(@"Failure");
}];
我可以为RKResponseDescriptor使用虚拟格式吗?
RKResponseDescriptor *responseDescriptor = nil; //causes a crash
答案 0 :(得分:1)
没有'虚拟' RKResponseDescriptor
实例,您必须明确定义您希望RestKit对响应数据执行的操作。
您的响应描述符可以是部分的,因此它只映射一个字段以证明事情正在发挥作用。
或者,您可以使用动态映射来读取传入数据中的键,并创建包含所有键的NSMutableDictionary
映射。
这两件事只对测试非常有用,但可能会对你有帮助。
如果响应实际上没有正文数据而你只想监视成功,那么你可以改为使用AFNetworking,或者创建一个映射到NSMutableDictionary
并且没有键的响应描述符。 RestKit应该选择它,它应该作为一个虚拟的'为了你的目的。它将创建一个从未使用过的字典实例,但你可以忽略它。
RKObjectMapping *mapping = [RKObjectMapping mappingForClass:[NSMutableDictionary class]];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:mapping
method:RKRequestMethodPOST
pathPattern:@"/path"
keyPath:nil
statusCodes:[self statusCodeSuccess]];