アプリケーションを使用しているときに、バックグラウンドで大きなデータを処理していることが数回あります。(ユーザーが必要なときに準備するため。何らかのインデックス付け。)このバックグラウンドプロセスが終了したら、データをキャッシュファイルに保存する必要がありますが、これは非常に大きいため、数秒かかります。
しかし同時に、ユーザーはディスクからロードされた画像とテキストを表示するダイアログを開くことができます。バックグラウンドプロセスデータの保存と同時にこれが発生した場合、ユーザーインターフェイスは保存プロセスが完了するまで待機する必要があります。(ユーザーはディスクから画像とテキストが読み込まれるまで3〜4秒待つ必要があるため、これは望ましくありません!)
だから私はディスクへの書き込みを抑える方法を探しています。データをチャンクに分割し、異なるチャンクを保存する間に短い遅延を挿入することを考えました。この遅延では、ユーザーインターフェイスが必要なテキストと画像を読み込むことができるため、ユーザーは遅延を認識しません。
現在、私はを使用して[[array componentsJoinedByString:'\n'] writeToFile:@"some name.dic" atomically:YES]
います。これは非常に高レベルのソリューションであり、カスタマイズはできません。すべてのデータをワンショットで保存せずに、大きなデータなしで1つのファイルに実装するにはどうすればよいですか?