【问题标题】:Is it possible to use NSThreads for parsing four different URLs using NSXMLParser是否可以使用 NSThreads 使用 NSXMLParser 解析四个不同的 URL
【发布时间】:2011-02-17 18:31:31
【问题描述】:

如果我尝试解析单个 HTTP URL,它会很快完成。但是如果我必须在应用程序启动时解析四个不同的 URL,那么使用 NSThreads 和 NSOperation 队列是否可行。 如果可能的话,谁能用一个小例子解释一下?

萨戈斯

【问题讨论】:

    标签: iphone nsxmlparser nsthread


    【解决方案1】:

    编写一个 NSOperation 子类,并在 main 方法中执行如下操作:

    - (void)main
    {
        NSXMLParser *parser = [[[NSXMLParser alloc] initWithContentsOfURL:myURL_] autorelease];
        [parser setDelegate:self];
        [parser parse];
    }
    

    在你的 NSOperation 子类上实现你的解析器委托方法。然后实例化子类,为它们分配 URL,并将它们添加到操作队列中。使用通知或委托来了解它们何时完成。

    【讨论】:

    • 其实我有四个不同的URL,每个都分别解析XML文档,并将值存储在数据库中。我在单个 URL 调用上实现解析器委托方法。如果您能帮我举出上面的一些例子,那就太好了。
    • 我不确定我是否理解。您是否有 4 个需要以不同方式解析的 xml 文件(即它们都有不同的结构)?还是包含不同数据但结构相同的 4 个文件?
    • 4 个文件包含不同的数据,但结构相同,但每个文件存储在不同的数组中。
    • 然后只需添加一个属性或初始化程序来设置 URL(上例中的 myURL_ 变量)并创建四个操作,将它们的 URL 设置为您需要的四个文件。
    • 您的意思是为每个 URL 创建四个不同的 NSOperations?
    【解决方案2】:

    是的。一定要使用 NSOperationQueue。以下链接基本上展示了如何使用 NSOperationQueue 解析多个 URL(xml 文件)。

    http://www.cocoabuilder.com/archive/cocoa/275115-nsoperationqueue-for-nsxmlparser-object.html

    【讨论】:

      猜你喜欢
      • 2016-01-06
      • 2011-09-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      相关资源
      最近更新 更多