我需要以固定間隔異步解析XML,以便當用戶使用「PullToReload」重新加載UITableView時,它會加載更新後的值。我敢打賭使用的NSTimer ...什麼是使用NSTimer在後臺解析XML的最佳方式
我已經有一個XML解析器使用TBXML:
- (void) xmlParserWrapper
{
...
TBXMLParser *xmlParser = [[TBXMLParser alloc] initWithContext:context];
[xmlParser performSelectorInBackground:@selector(parseXMLFileAtURL:) withObject:xmlUrl];
}
所以我嘗試使用的NSTimer
{
...
[NSTimer scheduledTimerWithTimeInterval:30 target:self selector:@selector(xmlParserWrapper) userInfo:nil repeats:YES];
}
這工作得很好,只要在用戶中贏得」在解析時觸摸GUI。但是當用戶點擊UITableViewCell時,它需要將新的UITableView推送到UINavigationController並根據所選單元格值提取數據;因爲NSManagedContext在解析過程中是空的(直到它被填充),應用程序因'無效謂詞:無RHS'而崩潰。
我的代碼現在變得非常大,所以我不能真正將它粘貼在這裏,但請讓我知道你需要看哪些代碼部分,我會把它放在這裏。
基本上,我只需要有一個定期的後臺XML解析,不會導致應用程序崩潰。我還需要它在另一個線程中,以便在用戶導航到UI時不會阻塞MainThread。
由於提前, dfox
感謝您的建議,我會盡力處理並嘗試實施。我深入探究當前的問題,我注意到當我嘗試加載新數據時。我現有的變量'@property(retain,non-atomic)NSMutableArray * entityArray'變空。我會嘗試一下你的建議,看看我能否再進一步。 謝謝 – dfox