【问题标题】:How to parse xml string in iphone 2.0如何在 iphone 2.0 中解析 xml 字符串
【发布时间】:2011-01-11 16:12:10
【问题描述】:

我正在从 .net Web 服务器以 xml 字符串的形式获取信息(id、名称、地址)。

我正在使用 NSXMlparsing 在 iphone os 4.0 中解析这个 xml 字符串。

现在我需要在 iphone os 2.0 中执行相同的应用程序。

我发现 Nsxmlparsing 委托应该在 4.0 及更高版本上工作。

谁能建议一下哪种方法适合解析xml字符串和示例教程。

提前谢谢你。

【问题讨论】:

  • 您为什么要为 iPhone OS 2.0 编写应用程序?你是说3.0吗?
  • -1 不首先搜索类似问题。
  • @Moszi 我不同意反对意见,我提到了他们目前使用 NSXMLParser 并想知道它的 iOS2.0 兼容性的部分,而不是后来关于其他方法的问题,这确实需要一些搜索功能教育。我认为与其回避他们,不如实际尝试解决他们的 iOS 版本问题。
  • 在这种情况下,我会否决 XCode 中不简单的 Option-DoubleClicking NSXMLParser 并阅读“可用性:iOS 2.0 及更高版本”文本的问题...
  • 人们不会来 SO 只是被告知“RTFM”。至少,我喜欢认为我们比这更有帮助。 =)

标签: iphone


【解决方案1】:

NSXMLParserDelegate 是在 iOS 4.0 中添加的。 您可以使用 #define 指令声明该协议,以便在 4.0 之前的 iOS 版本中包含该协议声明,以便能够编译您的代码,但您不一定必须在此协议定义中包含所有方法。
你可以这样做:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_4_0

@protocol NSXMLParserDelegate <NSObject>
@end

#endif

【讨论】:

    【解决方案2】:

    NSXMLParser 从 iPhone OS 2.0 开始可用。委托协议也一直可用,但在 iOS 4.0 之前 NSXMLParserDelegate 是所谓的非正式协议,例如没有明确定义。

    从 iOS 4.0 开始,许多以前非正式的协议已升级为实际格式协议,NSXMLParserDelegate 就是其中之一。

    您收到的关于不符合协议的警告是针对 SDK 4.0 及更高版本构建的,或者如果针对更早的 SDK 构建,则缺少协议,可以通过有条件地符合协议来补救:

    @interface MyClass : NSObject
    #if __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_4_0
        <NSXMLParserDelegate>
    #endif
    {
       // Your ivars here
    }
    // And methods here as usual
    @end
    

    或者你可以通过将你的委托转换为id来关闭编译器:

    [myXMLParser setDelegate:(id)self];  // Assuming self is the delegate
    

    【讨论】:

      【解决方案3】:

      已编辑:来自doc 的 NSXMLParser 可用性 适用于 iOS 2.0 及更高版本。

      【讨论】:

      • OP 声明他们目前正在使用这个。
      【解决方案4】:

      根据the NSXMLParser documentation,您可以在iOS 2.0 上使用它。委托文档提到了 iOS4。其中一个是错误的,我没有 iOS 2.0 设备来测试它,但是您是否尝试过当前形式的应用程序?我在这里的假设是委托文档是错误的,它确实支持 2.0。

      【讨论】:

      • NSXMLParserDelegate 从 iOS 2.0 开始可用(从那时起我一直在使用它)。可用性文档有点奇怪,但对于它所说的方法:在 iOS 2.0 及更高版本中可用。在 iOS 4.0 之前作为非正式协议的一部分提供。
      • @mluisbrown 感谢您的确认。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 1970-01-01
      • 2014-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多