私のiPhoneアプリでは、デフォルトのNSFileManagerを使用して、一部のデータをコピーおよび移動しています。データ量は数MBになる場合がありますので、コピーが完了するまでに数秒かかる場合があります。ユーザーがコピープロセスを開始してアプリケーションを終了した場合、バックグラウンドモードでディスクへの書き込みを続行できますか?もしそうなら、どのように?新しいコピープロセスを開始したくありませんが、実行中のプロセスを終了するだけです。
現在、2種類のメソッド呼び出しを使用しています。
[imageData writeToFile:path atomically:YES];
と
[fm copyItemAtPath:sourcePath toPath:destinationPath error:&error];
両方の呼び出しは別のメソッドでラップされ、を介してバックグラウンドで実行され-performSelectorInBackground:withObject:
ます。
もう1つの質問は、書き込み操作がどこまで進んだか、または少なくともすでに完了しているかどうかについての情報を取得できるかどうかです。
編集:いくつかの詳細情報:現在、私はバックグラウンドタスクをまったく実装していません。ユーザーがホームボタンを押すと、実行中のディスク操作はどうなりますか?それらは切り取られただけで、ファイルは不完全ですか?次のスタートで書き続けることはできますか?それらはキャンセルされ、不完全なファイルは削除されますか?
要約すると、私はディスクにデータを書き込んでおり、書き込み操作中にユーザーがホームボタンを押したときにデータの一貫性を維持したいと考えています。どうすればこれを達成できますか?