好的我希望我在這裏錯過了一些基本的東西 - 我在這方面不是很專業。它應該是不言自明的代碼示例: 我解析了一個web託管的xml文件,該文件包含要在tableView中顯示的標題列表和關聯的URL以在選擇單元格時傳遞給webView。解析發生在tableView到一個字典中。如果我在主線程上解析它很好,但如果信號很差,我很擔心掛起UI。因此,我在這裏將解析調用包裝在一個調度隊列中,現在它呈現一個空表。但是,如果我回到視圖層次結構並再次嘗試(它嵌入在導航控制器中),那麼它可以工作,我的表格已經完全填充。 我假設通過使用輔助線程以某種方式在內容數組填充之前創建表。我該如何解決這個問題? 謝謝! AndrewiOS:在xml解析完成之前創建的表視圖
0
A
回答
1
實施的NSXMLParser
的- (void)parserDidEndDocument:(NSXMLParser *)parser
委託方法。並從該方法調用你的tableView的reloadData
。
- (void)parserDidEndDocument:(NSXMLParser *)parser
{
dispatch_sync(dispatch_get_main_queue(), ^{
[yourTable reloadData];
});
}
+0
精美作品萬分感謝 – user1084420
+0
@ user1084420分析數據後,你應該載入您的表,:愉快:) –
0
如果您在派遣隊列中進行分攤,則必須更新主隊列上的UI。
我正在做類似的事情。這裏是我的代碼:
dispatch_queue_t imgDownloaderQueue = dispatch_queue_create("imageDownloader", NULL);
dispatch_async(imgDownloaderQueue, ^{
NSString *avatarUrlString = [avatarImageDictionary objectForKey:@"url"];
avatarImage = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:avatarUrlString]]];
dispatch_sync(dispatch_get_main_queue(), ^{
id asyncCell = [self.tableView cellForRowAtIndexPath:indexPath];
[[asyncCell avatarImageView] setImage:avatarImage];
});
});
相關問題
- 1. 在XML解析完成之前加載tableview,未加載數據
- 2. 在完成之前取消列表視圖適配器的asynctask
- 3. 在創建列表視圖活動之前預創建行視圖?
- 4. 解析XML生成動態視圖
- 5. 行動表之前的模態視圖完全解除
- 6. 如何讓SAX解析器在解析之前等待文件完成下載?
- 7. 如何在完成解析之前退出模塊?
- 8. 如何在完成塊之前解析嵌套異步調用
- 9. angularjs $ routeProvider route在解析完成之前執行
- 10. iOS Xcode 4.3表視圖控制器和XML解析
- 11. q承諾在完成之前解決?
- 12. Android SOAP解析xml列表視圖
- 13. Android XML解析列表視圖
- 14. Json解析嵌套表視圖iOS
- 15. 解析查詢之前完成的任務
- 16. 在項目嚮導完成之前已經創建的項目
- 17. iPhone - 使UITableViewCells出現在NSURLConnection完成之前的視圖加載
- 18. 如何識別XML解析已完成?
- 19. Autofac - 在構建之前解析
- 20. iOS 5在填充表之前等待委託完成?
- 21. GDataXML iOS轉義和解析之前
- 22. Xml解析在iOS教程
- 23. XML解析iOS -NSUnknownKeyException
- 24. Xml解析器/從XML節點列表創建XML DOM文檔
- 25. Git-Flow - 在發佈完成之前創建新功能
- 26. 在完成zip創建之前發送zip內容至響應
- 27. WordPress在解析之前解析wp_posts.post_content?
- 28. 在使用CoffeeScript之前等待視圖完全生成
- 29. node.js:在嘗試解析內容之前如何等待「解壓縮」完成
- 30. angularjs視圖在解析檢查之前加載訪問
只能從XML –