您好我UITableView
冻结了一个问题,
" downloadItem"当有人点击iPad上的按钮时,下面会被调用。它应该下载一个文件,然后返回。
在下载期间,虽然卡在该功能中,但我希望UI仍然具有响应能力,因此我安装了如下的runloop。
实际的downloadItem函数比下面显示的更复杂,但显示的是它的基本概念。我知道这不是最好的方法,但由于其他原因,我现在无法改变它,特别是由于实际功能的复杂性。
问题是我在屏幕上也有UITableView
(以及按钮),如果在此函数中点击或滚动UITableView
,则在runloop中UITableView
UITableView
1}}有时会冻结,并在退出此功能后仍然保持冻结状态。这种情况每次都不会发生,可能是40%的时间。
有谁知道如何修复,下面的RunLoop调用是否正确?为什么当我在下面的runloop中点击-(IBAction) downloadItem
{
BOOL downloading=TRUE;
callFunctionsToStartdownload(...);
while (downloading) {
downloading=DownloadSomeBytes(...);
CFRunLoopRunInMode(kCFRunLoopDefaultMode, 0, YES);
}
}
时,桌子有时会冻结?
{{1}}
感谢
答案 0 :(得分:0)
一般来说,这似乎没必要。您希望下载的字节的处理位于一个线程中(这不会解决),但实际的异步NSURLConnection应该在一个线程中完成它的工作(然后回调到启动它的线程) )。