2012-08-17 70 views
-1

如何使用的NSTimer與NSURL數據傳遞到的NSXMLParser顯示在TableView中如何使用的NSTimer與NSURL數據傳遞到的NSXMLParser顯示在TableView中

我從Web服務器應用程序的顯示數據由PHP根」到XML

在我的Xcode我用NSURL用於連接到PHP文件(Web服務器) 和使用的NSXMLParser閱讀把價值陣列 和最終顯示的TableView

我希望看到的TableView實時更新數據的XML數據或者每x次更新一次

我想我可以使用的NSTimer,但我不知道我可以在那裏 我可以把的NSTimer的代碼在Xcode

幫我嗎?

謝謝

我的代碼

http://www.vasuta.com/ios/MyLoxFile.zip

PS。對不起我的英語技能。

+0

幫助我pleseeeeee – Vasuta 2012-08-20 09:36:31

回答

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屆211 - iOS上構建併發用戶界面。

+0

感謝您的回答,但我可以把它放到我的代碼? – Vasuta 2012-08-28 02:19:27

+0

在我的代碼http://www.vasuta.com/ios/MyLoxFile.zip ...文件「MyLoxFileTVContoller.m」我將第36行移動到79 dispatch_async權利? ...我在哪裏把dispatch_async放在我的項目中? – Vasuta 2012-08-28 04:08:02

+0

好的,我把dispatch_async放在doParse中,但它不工作 – Vasuta 2012-08-28 04:24:39

相關問題