我使用下面的代碼一個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