使用 RaptureXML 时出现 ARC 错误

Posted

技术标签:

【中文标题】使用 RaptureXML 时出现 ARC 错误【英文标题】:ARC Error while using RaptureXML 【发布时间】:2013-02-11 12:43:27 【问题描述】:

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

'elementFromURL:' 已弃用 “_OBJC_CLASS_$_RXMLElement”,引用自:MyViewController.o 中的objc-class-ref ld:未找到体系结构 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文件

【问题讨论】:

请附上 RaptureXML 网站的链接。 @***foe 有什么意义? @Till 所以我可以查看代码/文档。 @***foe github.com/ZaBlanc/RaptureXML @Till Yeah 欢呼;这是我认为 OP 应该考虑的事情,这就是为什么我要求他编辑他的问题。 【参考方案1】:

最后我按照RaptureXML GitHub的建议通过以下方式解决了ARC错误的问题。

对于 ARC 问题

因为这是一个链接器错误

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

对于 'elementFromURL:' 已弃用问题

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

【讨论】:

【参考方案2】:

好的,有两个问题:

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

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

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

【讨论】:

我可以完美运行其他应用程序。当我使用 RaptureXML 时出现这些错误。我遵循了github.com/ZaBlanc/RaptureXML/blob/master/README.md 中给出的实现方式

以上是关于使用 RaptureXML 时出现 ARC 错误的主要内容,如果未能解决你的问题,请参考以下文章

将 iOS 项目转换为 ARC 时出现 Lipo 错误

使用Areca ARC-1883i时出现“请从最顶层重新启动”错误

使用 R 和 XLConnect 包时出现“内存不足错误 (Java)”

在 R 中使用 RcppArmadillo 包和 rowvec 时出现编译错误

在 R 中为 keras 调用 fit() 时出现奇怪的错误

使用 ggplot 在 R 中绘制组合 shapefile 时出现问题,未给出定义错误