RestKit 和键值编码......如何解决重复元素?
Posted
技术标签:
【中文标题】RestKit 和键值编码......如何解决重复元素?【英文标题】:RestKit and key-value coding ... how to address repeating elements? 【发布时间】:2012-01-30 15:51:23 【问题描述】:我的文档有时看起来像这样:
<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?来自网站或 git master 的 0.9.3 快照? 我按照自述文件中的 tl;dr 说明进行操作 -- git://github.com/RestKit/RestKit.git 我遇到了同样的问题并创建了an issue on github 【参考方案1】:按照 Blake Walters 的说法:master 和 0.9.3 中的 LibXML 解析器有很多问题,最近在 RestKit 的开发分支中被基于 NSXMLParser 的解决方案取代,这解决了一些问题。
更好的方法是将重复的元素包装到一个数组中以供访问。
【讨论】:
我认为这意味着更改 XML,这是不可能的。以上是关于RestKit 和键值编码......如何解决重复元素?的主要内容,如果未能解决你的问题,请参考以下文章
RestKit 0.20.1 映射本地 JSON “此类不符合键值编码...”