【问题标题】:RESKIt: No Response DescriptorRESKit:无响应描述符
【发布时间】:2014-04-08 19:37:56
【问题描述】:

我正在使用下面的代码发布 managedObject。从服务器,除了 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

【问题讨论】:

    标签: core-data restkit restkit-0.20


    【解决方案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]];
    

    【讨论】:

    • 谢谢。如果返回的唯一内容是 200,我如何将某些内容映射到它?
    • 哦,我明白了,没有响应正文数据——那么你不应该使用 RestKit。您应该直接使用 AFNetworking(这就是 RestKit 在后台使用的)。
    • 嗯,在我的大部分通话中,我都会收到响应数据。但在这种情况下,我不是。如何使用 AFNetworking 发布上面的代码块?
    • 嗯,AFNetworking 提供了一个非常相似的 POST 方法,但是你需要让 RestKit 为你做序列化。使用映射到NSMutableDictionary 并且没有键的响应描述符可能会更好。 RestKit 会接受它,它应该充当你的目的的“虚拟”。它将创建一个字典实例,但您可以忽略它...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-29
    • 2015-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2019-03-21
    相关资源
    最近更新 更多