現在、テキスト メッセージ、画像、音声ファイルを送信するメッセージング アプリに取り組んでいます。
ダウンロードとアップロードのために、ファイルはhttpサーバーにアップロードされます。私はNSURLConnectionを使用しています。
ユーザーがダウンロードボタンをタップすると、テーブルビューのセルを抽出し、このようにプログレスビューをサブビューとして追加します
ヘッダファイル内
@property (strong, nonatomic) UIProgressView *progress;
クラスファイルで私のダウンロード方法
progress = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleBar];
progress.trackTintColor = [UIColor grayColor];
progress.frame = CGRectMake(10, 50, 160, 30);
progress.progress = 0.0;
[cell addSubview:progress];
データが受信されると、この NSURLConenction デリゲート メソッドが呼び出されます
-(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
if(imgUpload)
{
NSLog(@"UPLOAD");
}
else
{
[self.resourceData appendData:data];
NSNumber *resourceLength = [NSNumber numberWithUnsignedInteger:[self.resourceData length]];
[self.progress setProgress:[resourceLength floatValue] / [self.filesize floatValue] animated:YES];
}
}
複数のファイルがあり、ユーザーがダウンロード ボタンをタップするたびに、このコード全体が実行され、progressview がそのセルに追加されますが、すべてがprogress変数を介して参照されます。個々のプログレスビューが一意に識別される方法。3 つのファイルをダウンロードしようとすると、すべての進行状況ビューに独自の進行状況が示され、正常に動作します。
この概念をクリアしてください。
はい、ボンネットの下でデータが台無しになっています。音声ファイルと画像ファイルを一緒にダウンロードしようとしましたが、ファイルが破損してしまいました。
この問題を解決する方法の例を提供してください。