有几次在使用我的应用程序时,我在后台处理一些大数据。(当用户需要它时准备好。某种索引。)当这个后台进程完成时,它需要将数据保存在缓存文件中,但由于这真的很大,所以需要几秒钟。
但同时用户可能会打开一些显示从磁盘加载的图像和文本的对话框。如果在保存后台进程数据的同时发生这种情况,用户界面需要等待,直到保存过程完成。(这是不希望的,因为用户必须等待 3-4 秒才能加载磁盘中的图像和文本!)
所以我正在寻找一种限制写入磁盘的方法。我想把数据分成几块,并在保存不同的块之间插入一个短暂的延迟。在此延迟中,用户界面将能够加载所需的文本和图像,因此用户将无法识别延迟。
目前我正在使用[[array componentsJoinedByString:'\n'] writeToFile:@"some name.dic" atomically:YES]
. 这是一个非常高级的解决方案,不允许任何定制。如何在没有大数据的情况下实现一个文件而不将所有数据保存为一次性?