0

我尝试在我的应用程序中使用RaptureXML,因为我知道它很容易实现解析。我正在尝试解析远程 XML 文件并从中获取图像并将其视为 UIImageView。当我尝试调用我的远程 XML 文件时,我收到一个警告和两个错误,如下所示,

  • 'elementFromURL:' 已弃用
  • “_OBJC_CLASS_$_RXMLElement”,引用自:MyViewController.o ld 中的 objc-class-ref:未找到架构 i386 clang 的符号:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
  • clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)

我使用的 ViewController 如下所示,

- (void)viewDidLoad
  {
   [super viewDidLoad];
    RXMLElement *rootXML = [RXMLElement elementFromURL:[NSURL URLWithString:@"http://myxml.com/Sample.xml"]];
    RXMLElement *rxmlProducts = [rootXML child:@"Products"]; 
    NSArray *myarray = [rxmlPlayers children:@"Main"];
    UIImage *currentImage = [myarray objectAtIndex:0];
    customimage.image = currentImage;
  }

我的远程 XML 文件如下所示,

<Products>
  <Main id="1">
    <name>Main</name>
    <mainimage id="1">http://myimage.com/images/first.png</mainimage>
    <mainimage id="2">http://myimage.com/images/second.png</mainimage>
  </Main>
  <Category id="1">
    <name>category1</name>
    <categoryimage id="2">http://myimage.com/images/img1.png</categoryimage>
  </Category>
  <Category id="2">
    <name>category2</name>
    <categoryimage id="2">http://myimage.com/images/img2.png</categoryimage>
    <subcategoryimage id="1">http://myimage.com/images/img5.png</subcategoryimage>
    <subcategoryimage id="2">http://myimage.com/images/img4.png</subcategoryimage>
  </Category>
</Products>

谁能告诉我如何解决这个错误以及如何使用RaptureXML 解析上述远程 XML 文件。

4

2 回答 2

2

最后,正如RaptureXML GitHub所建议的那样,我通过以下方式解决了 ARC 错误的问题。

对于 ARC 问题

因为这是一个链接器错误

  • 转到项目设置,选择您当前的构建目标,然后点击“构建阶段”选项卡。在“编译源。
  • 检查是否RXMLElement.m在该列表中,如果没有将文件添加到列表中。现在 ARC 错误将由链接器解决。

对于 'elementFromURL:' 已弃用 问题

  • 他们不再推荐使用 elementURL:。您可以摆脱它,但它使您无法根据某些人的需要自定义网络呼叫(超时等)。他们建议使用您最喜欢的网络库来获取 XML 数据,然后将其通过管道传输到 RaptureXML。
于 2013-03-01T07:18:20.903 回答
0

好的,有2个问题:

1) RaptureXML 的作者已弃用此提交elementFromURL中的方法,并附有以下评论:

建议您自己处理网络操作,让 RaptureXML 处理 XML

2) 看起来您没有使用已编译并支持 iPhone 模拟器(架构 i386)的(静态?)库。要解决这个问题,您需要重新编译自己,包括支持或在网上找到一个已经具有此支持的网站。

于 2013-02-11T13:48:31.867 回答