2013-05-16 1 views
1

Я использую индикатор прогресса, чтобы показать процент загрузки файла на ftpserver, в первый раз он хорошо обновляется, когда я отменяю загрузку и снова запускаю идентификатор. для заполнения 50% полосы выполнения загрузки, в третий раз на 25% заполняется индикатор выполнения.progressBar, перемещающийся нерегулярно

вот код (я использую класс s7ftp загрузить на сервер)

- (void)uploadBytesWritten:(S7FTPRequest *)request { 


if (uploadedData < totalFileSize) { 
    uploadedData = uploadedData + request.bytesWritten; 
} 
float total = (float)totalFileSize; 
float bytes = (float)request.bytesWritten; 
float pt = (bytes/total); 
float totalSizeMb = (total/1048576); 
// NSLog(@"File Size in Mb:%f",totalSizeMb); 
float uploadDataMb = (uploadedData/1048576); 
NSString* totalSize = [NSString stringWithFormat: @"%5.1f", totalSizeMb]; 
NSString* uploadData = [NSString stringWithFormat: @"%5.1f", uploadDataMb]; 
// float str = (uploadDataMb/totalSizeMb); 
float str = (uploadedData/total); 
float string = str*100; 
int PercentageFinal = roundf(string); 
NSString *uploadPercentage = [NSString stringWithFormat:@"%d",PercentageFinal]; 
uploadpercentage = [NSString stringWithFormat:@"%@Mb/%@Mb", uploadData, totalSize]; 
NSLog(@"Uploading percentage:%@",uploadpercentage); 
NSString *percentage = [NSString stringWithFormat:@"%f",pt]; 
uploadProgressView.progress += [percentage doubleValue]; 
[[NSNotificationCenter defaultCenter] postNotificationName:@"UpdatePercentageNotification" object:nil userInfo:[[NSDictionary alloc] initWithObjectsAndKeys:percentage, @"percentage",uploadpercentage,@"UploadPercentage",uploadPercentage,@"Percent",nil]]; 

} 

в другом классе

-(void)Viewdidload{ 
     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updatePercentageNotificationOne:) name:@"UpdatePercentageNotification" object:nil]; 
    } 

- (void)updatePercentageNotificationOne:(NSNotification *)notification{ 
NSLog(@"Updating percentage in upload all view"); 
// NSString *uploadpercentage = [[notification userInfo ]objectForKey:@"UploadPercentage"]; 
// NSLog(@"Percentage:%@",uploadpercentage); 
NSString *percent= [[notification userInfo]objectForKey:@"Percent"]; 
NSLog(@"percent:%@",percent); 
NSString *percentage = [[notification userInfo] objectForKey:@"percentage"]; 
// NSLog(@"Percentage......%@",percentage); 
percentageLabel.text = percent; 
ProgressBar.progress +=[percentage doubleValue]; 
[[NSNotificationCenter defaultCenter] removeObserver:@"UpdatePercentageNotification"]; 

} 
+0

, где вы выделили init для progressbar – Durgaprasad

+0

in view didload – KMKR

ответ

0

K При запуске снова загрузить Progressbar должен быть сброшен. Вы просто назначаете init, когда пользователь загружается при загрузке.

+0

попробовал это тоже. – KMKR

+0

Тогда могут быть некоторые другие значения, такие как totalFileSize, uploadedData не инициализированы должным образом. – Durgaprasad