私は、写真ギャラリーから複数のイメージとビデオを選択し、データベースとオリジナルアセットのパスをアプリケーションドキュメントディレクトリに格納します。このプロセスでは、完了するまでステータスがプログレスバーに表示されます。 問題は、プロセスの進行状況バーのステータスを保存して保存を開始しても、保存操作が完了した後にプロセスのステータスが増加することです。 ショーの進行状況バーにSVProgressHUDを使用しています。 コード私は資産を選んだ後にしました。データベースとドキュメントディレクトリのデータストアのバックグラウンドプロセスを処理できません。
static float progress = 0.0f;
progress = 0.0f;
[SVProgressHUD showProgress:0 status:@"Loading"];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(SaveAssetToSQL) userInfo:nil repeats:NO];
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(load_Album_Data) userInfo:nil repeats:NO];
データの時刻にIncreaseProgressメソッドを呼び出すと、1つずつ保存されます。 アセットを保存する方法。
-(void)SaveAssetToSQL{
for (int i=0; i<TotalAssets; i++) {
[self performSelector:@selector(increaseProgress) withObject:nil afterDelay:0.3f];
//further process for save
}
}
私は完全な資産の保存処理までのプログレスバーとそのステータスを表示する必要がIncreaseProcess
- (void)increaseProgress {
progress+=0.1f;
[SVProgressHUD showProgress:progress status:[NSString stringWithFormat:@"%f",progress]];
if(progress < 1.0f)
[self performSelector:@selector(increaseProgress) withObject:nil afterDelay:0.9f];
else
[self performSelector:@selector(dismiss) withObject:nil afterDelay:0.4f];
}
のための方法。また、GCDを使用してバックグラウンドスレッドにそのストレージプロセスを配置しようとしましたが、進行状況を表示できませんでした。 これを解決するのを手伝ってください。 このプロセスを処理する方法を教えてください。 私の問題に関連して、ストレージプロセスをバックグラウンドで処理し、進行状況バーのステータスをフォアグラウンドで表示する方法はあります。 これを解決するのを手伝ってください。
uが私を提案することができ、私は上記のプロセスの下にそれを書くが、それはあなたが私の解決策を試してみて、それが動作しない場合は私にあなたのコードを表示することができます –
上でプロセスを保存する前に実行します。私は今旅行しており、アクセスが制限されています。 –
はい、完全に私のために働いています。また、私がコメントに書いた私の問題を解決しました。 –