我的应用程序包含从XML文件下载的数据。数据包含短文本和图像。
目前我正在ViewDidLoad方法中下载所有数据并在视图控制器中构建视图,这会导致应用程序在下载所有数据之前不显示根视图。我希望它以更加用户友好的方式显示,至少在启动画面期间预加载一些数据。
顺便说一句,我已经完成了延迟图像加载,因此在显示主视图时可以加载图像。
只要视图的数量取决于XML中的行数,在构建视图时异步加载XML并不符合我的需要(或者我可能是错的)。
我理解在答案中描述解决方案是一个相当大的挑战,所以也许您可以指向一篇文章甚至一本书,其中详细解释了异步和多线程处理。
答案 0 :(得分:1)
我认为您应该解析appDelegate的 didFinishLaunchingWithOptions:方法中的所有数据,然后使用以下方法进行解析。
[self performSelectorInBackground:@selector(downloadData:) withObject:nil];
方法 downloadData:包含解析过程。
答案 1 :(得分:1)
我不明白为什么你不能异步加载它o_O 你应该显示一些“加载”视图(最好有一个活动指标) 进度条也不错。
完成下载后,您只需重新加载并重新播放视图。
如果“视图数量”表示表格行中的单元格数量,则可以告诉tableview重新加载所有数据,而numberOfRowsInSection函数(或任何您想要使用的函数)应该返回适当的值,具体取决于它是否为加载与否。
编辑:当应用程序仍然加载时你不应该这样做,因为这对用户不友好,并且减慢了应用程序的加载速度