我加载从API数据和正在使用UIProgressView显示多少已加载。
在我的viewWillAppear中我使用可达性检查,有互联网连接。 然后,如果有,下面的行被称为在一个函数的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
}