ios - RKObjectManager 进行 PUT 的正确用法是什么?

标签 ios restkit put

我正在使用一个 API,它允许使用 PUT 请求更新对象 - 具有以下格式(w/curl):

curl --request PUT -u <api_key>: <api_url> \
-d "attribute=newvalue"

即然后更新 curl 中列出的关联对象(在 API url 中引用)的所有属性,并返回更新后的对象。

我将 RestKit 与映射对象一起使用,并且一切都与 GET 配合使用。但是在更新映射对象中的属性后,我很难让 RKObjectManager 中的 putObject 方法正常工作,例如:

 [objectManager putObject:<someObject>
               path:path
               parameters:nil
               success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {}
               failure:^(RKObjectRequestOperation *operation, NSError *error) {
                [self.refreshControl endRefreshing];
               }
 ];

无论我输入什么作为第一个参数 - 更新的映射对象、JSON 化字典,甚至只是一个普通的旧正文字符串,似乎都会从 RestKit 返回“无法解析请求数据,无效的 JSON”错误。我做错了什么?

最佳答案

您的<someObject>应该是数据模型中的类的实例。该类必须具有一组已定义的映射。

假设您有课 Person 。您定义一个映射和一个响应描述符,以便 RestKit 可以将下载的 JSON 转换为 Person对象。现在,您需要获取inverseMapping定义您的请求描述符,以便 RestKit 知道如何序列化上传。

这允许 RestKit 获取您的 <someObject> ,将其序列化为 JSON(请求描述符),将其发送到服务器,然后接收响应并将该数据映射回更新的对象(响应描述符)。

检查示例 here 。它使用字典来保存更新的属性,但原理是相同的。使用字典只会让上传部分对象而不是完整对象变得更容易。

关于ios - RKObjectManager 进行 PUT 的正确用法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16369496/

相关文章:

iphone - RestKit集成问题 "No Such File Or directory"

ios - Restkit-无法在 NSManagedObject 类上调用指定的初始化程序

javascript - rails : Remote form in popup window not calling controller action

Symfony2 <a> 链接 'post' 或 'delete' 或 'put' 方法

iOS:在这种情况下,放置请求将如何工作?

仅限 iOS 设置应用程序

ios - NSMutableAttributedString 字体大小意外改变

ios - 我无法加载存储在我的文档目录中的数据

ios - 将完成处理程序中的值/对象获取到其外部的数组中

objective-c - 第三方库如何在 Objective-C 和 Xcode 中工作?