我使用下面的代码一个NSMutableArray保存到磁盘:iOS的 - 所用时间,以节省阵列磁盘
[myArray writeToFile:filePath atomically:YES];
假设大约400个对象的数组,谁能告诉我,如果通过这种方法节约是一个耗时的过程?目前,文件可能会相当快速地被连续保存多次(我正在尝试修复),但是我想知道如果数组变大得多,这会在某个阶段导致问题吗?
亲切的问候
我使用下面的代码一个NSMutableArray保存到磁盘:iOS的 - 所用时间,以节省阵列磁盘
[myArray writeToFile:filePath atomically:YES];
假设大约400个对象的数组,谁能告诉我,如果通过这种方法节约是一个耗时的过程?目前,文件可能会相当快速地被连续保存多次(我正在尝试修复),但是我想知道如果数组变大得多,这会在某个阶段导致问题吗?
亲切的问候
仅供参考,iPod Touch 4闪存写入速度为≈18 MB/s(我已使用this文章中的代码进行测量)。
通过转到Xcode Organizer→设备选项卡→在设备中选择应用程序→您的应用程序→选择文件,然后按下载,您可以看到设备上保存文件的大小。
对于模拟器,请转到~/Library/Application Support/iPhone Simulator/<iOS version>/Applications/<App ID>/Documents
。
这里有几件事情 -
而不是写入例如在数组的每次更新时,为什么不将更改保存在内存中,只需将其刷新到applicationDidMoveToBackground或其他应用程序事件的磁盘上,以确保它在应用程序被终止之前被写入?
您期待什么样的问题? – 2012-03-05 07:06:08
好吧,为了夸大其词,如果保存需要20秒,并且一个方法试图保存到一个文件,然后另一个方法试图在'20秒'之前保存到同一个文件,它会导致数据腐败? – achiral 2012-03-05 07:11:00
只要考虑磁盘I/O是昂贵的。如果您的数据连续快速变化,请尝试在内存本身进行管理。在绝对必要时写入。 – Vignesh 2012-03-05 07:11:03