如何将NSTimer与来自NSURL传递的数据一起使用到TableView中的NSXMLParser显示
我有来自Web服务器的应用程序显示数据由PHP gen'到XML
在我的xcode中,我使用NSURL连接到PHP文件(在Web服务器中) 并使用NSXMLParser读取XML数据将值放入数组 并最终显示在TableView
上我希望看到TableView实时更新中的数据或每x次更新一次
我想我可以使用NSTimer,但我不知道我怎么做 我可以将NSTimer放入xcode中的代码
答案 0 :(得分:0)
简而言之,如:
// Schedule a timer repeating every 2 seconds
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self.tableView
selector:@selector(reloadData)
userInfo:nil
repeats:YES];
更长的版本:
您需要从计时器调用-doParse,获取数据,解析并重新加载数据。
为了不阻止主线程,您必须 NOT 从主线程中调用[[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];
});
});
使用来自-viewDidLoad的NSTimer调用-doParse
:
[NSTimer scheduledTimerWithTimeInterval:2.0
target:self
selector:@selector(doParse)
userInfo:nil
repeats:YES];
进一步阅读: WWDC 2012 Session 211 - 在iOS上构建并发用户界面。