情况:
在我的应用程序的某个地方,我开始从我的服务器下载数据。在开始下载之前,我想更新一个 UILabel 以说 @"Now Downloading..."。并在下载结束时将其设置回空白。
问题:
下载似乎占据了所有计算机的注意力,并且 UILabel 直到最后(下载已经结束)才更新,因此被设置回空白(或者,永远不实时可见)。
问题:
如何在下载之前简单地更新我的 UILabel 以显示“正在下载”?
情况:
在我的应用程序的某个地方,我开始从我的服务器下载数据。在开始下载之前,我想更新一个 UILabel 以说 @"Now Downloading..."。并在下载结束时将其设置回空白。
问题:
下载似乎占据了所有计算机的注意力,并且 UILabel 直到最后(下载已经结束)才更新,因此被设置回空白(或者,永远不实时可见)。
问题:
如何在下载之前简单地更新我的 UILabel 以显示“正在下载”?
label.text = @"Downloading";
NSOperationQueue *operationQueue = [[NSOperationQueue]alloc]init];
NSInvocationOperation *operation = [[NSInvocationOperation alloc]initWithTarget:self selector:@selector(download) object:@"http://www.google.com"];
[operationQueue addOperation:operation];
[operation release];
- (void)download:(NSString *)url
{
// do the download
[self performSelectorOnMainThread:@selector(didFinishDownload) withObject:nil waitUntilDone:NO];
}
- (void)didFinishDownload
{
label.text = @"";
}
如果您使用NSURLRequest
->NSURLConnection
和 NSURLConnection 的委托方法,这将在后台执行下载,并将传入数据通知委托。这也将允许您显示进度。