我正在从 API 加载数据,并使用 UIProgressView 来显示加载了多少。
在我的 viewWillAppear 中,我使用 Reachability 来检查是否有 Internet 连接。然后,如果有,则在函数中调用以下行 10 次。
[self performSelectorInBackground:@selector(updateProgress) withObject:nil];
然后运行此方法
-(void)updateProgress {
float currentProgress = myProgressBar.progress;
NSLog(@"%0.2f", currentProgress);
[loadingProg setProgress:currentProgress+0.1 animated:YES];
}
浮点数以 0.1 递增,加载视图显示这一点。
当视图被关闭(它是一个模态视图)然后被调用时,该方法运行并且 NSLog 显示 currentProgress 正在递增。但是,进度条仍然是空的。有谁知道这可能是什么原因?
作为参考,我使用的是 ARC。
更新:
这就是我调用 API 的方式
NSString *urlString = **url**;
NSURL *JSONURL = [NSURL URLWithString:urlString];
NSURLRequest *request = [NSURLRequest requestWithURL:JSONURL
cachePolicy:NSURLRequestReloadIgnoringCacheData
timeoutInterval:10];
if(connectionInProgress) {
[connectionInProgress cancel];
}
connectionInProgress = [[NSURLConnection alloc] initWithRequest:request delegate:self startImmediately:YES];
//This is where I call the update to the progress view
我有这些功能:
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
JSONData = [NSMutableData data];
[JSONData setLength:0];
}
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
[JSONData appendData:data];
}
-(void) connectionDidFinishLoading:(NSURLConnection *)connection
{
//add data to mutable array and other things
}