-1

如何使用 NSTimer 与从 NSURL 传递到 NSXMLParser 的数据在 TableView 中显示

我有应用程序显示数据从 Web 服务器通过 PHP gen' 到 XML

在我的 xcode 中,我使用 NSURL 连接到 PHP 文件(在 Web 服务器中)并使用 NSXMLParser 读取 XML 数据将值放入数组并最终显示在 TableView

我想查看 TableView 中的数据实时更新或每 x 次更新一次

我想我可以使用 NSTimer 但我不知道如何将 NSTimer 放在 xcode 中的代码中

4

1 回答 1

0

简而言之,类似于:

// Schedule a timer repeating every 2 seconds
[NSTimer scheduledTimerWithTimeInterval:2.0
                                 target:self.tableView
                               selector:@selector(reloadData)
                               userInfo:nil
                                repeats:YES];

更长的版本:

您需要从计时器调用 -doParse、获取数据、进行解析并重新加载数据。

为了不阻塞主线程,你不能[[NSXMLParser alloc] initWithContentsOfURL:theURL]从主线程调用。

反而:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_LOW, 0), ^{
      NSXMLParser *nsXmlParser = [[NSXMLParser alloc] initWithContentsOfURL:theURL];
      ...
      // finish parsing
      dispatch_async(dispatch_get_main_queue(), ^{
          [tableView reloadData];
      });
});

-doParse使用来自 -viewDidLoad 的 NSTimer 调用:

[NSTimer scheduledTimerWithTimeInterval:2.0
                                 target:self
                               selector:@selector(doParse)
                               userInfo:nil
                                repeats:YES];

进一步阅读:WWDC 2012 Session 211 - 在 iOS 上构建并发用户界面。

于 2012-08-27T09:54:35.757 回答