gpt4 book ai didi

iphone - 设置参数后,Restkit sendObject 不发布对象

转载 作者:行者123 更新时间:2023-11-28 19:15:30 25 4
gpt4 key购买 nike

我正在尝试使用 Restkit 发布一个对象,但是当我设置一些额外的参数时,它不再发布该对象。

NSDictionary *params = [NSDictionary dictionaryWithObject:@"mic" forKey:@"type"];

[[RKObjectManager sharedManager] sendObject:rating toResourcePath:@"/mic" usingBlock:^(RKObjectLoader *loader) {
loader.delegate = self;
loader.method = RKRequestMethodPOST;
loader.params = params; // without this line, the 'rating' object is posted,
}];

我需要发送对象中未包含的额外 POST 参数,使用上面的代码,我通过 POST 接收到额外的“类型”参数,但未收到对象。

我阅读了文档的参数部分 https://github.com/RestKit/RestKit/wiki/Object-mapping - 由于方法已更改,文档必须有点旧,但概念是相同的。我看不出自己做错了什么...非常感谢您的帮助。

最佳答案

在 RestKit 的源代码中搜索“prepareURLRequest”

第一行是:

    if ((self.sourceObject && self.params == nil) && (self.method == RKRequestMethodPOST || self.method == RKRequestMethodPUT))

因此,您的 sourceObject 是有效的,但您的参数不是 nil,因此您的对象永远不会被序列化。

此外,当您的对象成功序列化时,它会被放入“params”值中。因此,如果您说“loader.params = params”,您将覆盖您的初始对象。

此处最好的解决方案是更改“sourceObject”,使其具有额外的参数,并相应地为其创建映射。

除此之外,您可能必须使用更通用的方法(查看 loadObject)并在您的 block 中将方法更改为“POST”并更改手动构建您的后数据 block 。

关于iphone - 设置参数后,Restkit sendObject 不发布对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12260752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com