2012-01-30 44 views
4

我有一个文件,看起来像这样有时会:RestKit和键值编码...如何解决重复元素?

<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被正确地解释第一文档为包含字符串的数组 - 但在第二文档的情况下,我无法找到一种方法,强制该相同的解释。

有没有简单的方法来表达这个与KVC设施在RestKit,或者我最好写一些完全自定义的映射器?

+0

您使用哪个版本的restkit?来自网站或git master的0.9.3快照? – mja 2012-01-30 16:01:12

+0

我遵循自述文件中的tl; dr指令 - git://github.com/RestKit/RestKit.git – 2012-01-30 16:23:47

+1

我遇到了同样的问题,并创建了[github上的问题](https://github.com/ RestKit/RestKit/issues/536) – Besi 2012-01-31 10:47:43

回答

0

按照Blake Walters的说法:在master和0.9.3上的LibXML解析器有很多问题,最近在RestKit的开发分支中被一个基于NSXMLParser的解决方案取代,这解决了一些问题。

更好的方法是将重复元素包装到数组中以便访问。

+0

我假设这意味着更改XML,这是不可能发生的。 – 2012-02-14 18:34:45