• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用 RestKit 发布多个对象(作为 JSON 数组)

[复制链接]
菜鸟教程小白 发表于 2022-12-12 12:09:52 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试使用 RestKit 将多个对象作为数组发送到服务器。不幸的是,我不能这样做。
遵循我非常简单的对象以及 RestKit 的映射:

示例对象

@interface MyExampleObject : NSObject

@property NSString *key;
@property NSString *value;

@end

Array-Object 包含多个 MyExampleObject

@interface MyArray : NSObject

@property NSArray *array;

@end

映射

RKObjectMapping *mappingObject = [RKObjectMapping mappingForClass:[MyExampleObject class]];
[mappingObject addAttributeMappingsFromDictionary{
                                              @"key" : @"key",
                                              @"value" : @"value"
                                              }];

RKObjectMapping *mappingArray = [RKObjectMapping mappingForClass:[MyArray class]];
[mappingArray addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath"dummy" toKeyPath"array" mappingObject]];

如果我这样做,我会得到以下结果:

{
  "dummy" : [
    {
      "key" : "MyKey1",
      "value" : "MyValue1"
    },
    {
      "key" : "MyKey2",
      "value" : "MyValue2"
    }
  ]
}

但我只想要没有“键”的数组。像这样:

[
    {
      "key" : "MyKey1",
      "value" : "MyValue1"
    },
    {
      "key" : "MyKey2",
      "value" : "MyValue2"
    }
]

relationshipMappingFromKeyPath 更改为 nil 对我来说似乎很明显。但这不起作用(得到 setObjectForKey: key cannot be nil 错误)。

如何将多个 MyExampleObjects 作为 JSON 数组发送到我的服务器?

解决方案:

作为 Wain建议我删除了我的“顶部映射”。在最终映射之后:

RKObjectMapping *mappingObject = [RKObjectMapping mappingForClass:[MyExampleObject class]];
[mappingObject addAttributeMappingsFromDictionary{
                                              @"key" : @"key",
                                              @"value" : @"value"
                                              }];

当我将这些东西发布到我的服务器时,我只是做这样的事情:

NSArray *array = [NSArray arrayWithObjects:myExampleObject1, myExampleObject2, nil];
[[RKObjectManager sharedManager] postObject:array path"/myPath/" parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {
...
}



Best Answer-推荐答案


只需去掉 MyArray 对象和关联的映射,直接将 MyExampleObjectNSArray 传递给 post 方法即可。 RestKit 会理解它是一个对象数组来映射并做正确的事情。

关于ios - 使用 RestKit 发布多个对象(作为 JSON 数组),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26467385/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap