iPhone アプリケーションに問題があり、アプリケーションの実行時には問題ないように見えるファイルが、アプリケーションの再起動時にサイズが 0 で表示されることがあります。コード全体をチェックしました。これらのファイルが書き込まれる方法は、基本的に次のとおりです。
NSFileHandle *fHandle = [NSFileHandle fileHandleForWritingAtPath: myFileName];
do
{
// code to set value of myNSData
[fHandle writeData: myNSData];
// some more logic here
}
while (!done)
[fHandle closeFile];
シミュレータと実際のデバイスの両方で問題が発生するのを見てきました。散発的にしか発生しないため、状況を追跡するのは困難です。
私の質問は次のとおりです。[fHandle synchronizeFile] を呼び出して、データが永続的なストレージに移動することを確認する必要がありますか? iOS が永久ストレージに送信される前にファイル バッファからデータを失い、アプリを再度開いたときにファイル サイズが 0 になる可能性はありますか?