RestKit和键值编码...如何处理重复元素?

4

我有时候会得到这样的文档:

<doc>
  <titleInfo>
    <title>One version of the title</title>
  </titleInfo>
  <titleInfo>
    <title>Another version</title>
  </titleInfo>
</doc>

但有时它看起来像这样:

<doc>
  <titleInfo>
    <title>This is the only version of the title</title>
  </titleInfo>
</doc>

我正在尝试将此内容映射到我的对象中的数组,代码如下:

[mapping mapKeyPath:@"titleInfo.title" toAttribute:@"titles"];

这在第一个案例中有效,但在第二个案例中,我收到以下错误:

RKObjectMappingOperation.m:199 Failed transformation of value at keyPath 'titleInfo.title'. No strategy for transforming from '__NSCFString' to 'NSArray'

显然,RestKit正确解释了第一个文档包含字符串数组--但是对于第二个文档,我找不到强制相同解释的方法。

在RestKit的KVC工具中,是否有一种简单的表达方式,或者我最好编写一些完全定制的映射器?


你使用的是哪个版本的RestKit?是从网站上下载的0.9.3快照还是Git主分支? - mja
我按照readme中的tl;dr指示进行了操作 -- git://github.com/RestKit/RestKit.git - Steven Huwig
1
我遇到了同样的问题,并在 github 上创建了一个问题 - Besi
1个回答

0
根据Blake Walters的说法:在主分支以及0.9.3版本中,LibXML解析器存在许多问题,最近已经被基于NSXMLParser的解决方案所取代,并且这解决了一些问题。 更好的方法是将重复元素包装成数组以供访问。

我认为这意味着改变XML,但这是不可能的。 - Steven Huwig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接