目前官方允許的檔案儲存位置只有兩個地方
一個是 /Documents
另一個是 /Library/Caches
這兩個的差別是,Documents 裡的檔案會被永久儲存下來,
Caches 的會因為系統需要空間的關係而被清空。
另外是如果要下載圖片的話,
我是完全不建議直接以 NSData 的型態暫存,
如果你的圖片有 10MB 以上的大小的話,
會因為吃掉太多記憶體而被 iOS 系統給強制停止;
所以這時候就要改用 CFNetwork FrameWork 裡面的 Api 來下載,
不過這邊的 Api 太原始了並沒有那麼直覺,
所以你可以改用第三方的 Api:ASIHTTPRequest 或 AFNetworking,
這兩個都可以直接將網路的檔案下載時直接寫入到檔案中,
中間不會先使用 Ram 來保存所有檔案資料才寫入,
而是變成先保存一部分的資料就將它寫到檔案裡去。
另外獲取檔案路徑的部份我也有一個好用的第三方 Api 可以推薦,
就是 DTFileController: https://github.com/Darktt/DTFileController ,
它可以用最快的方式取得檔案路徑,像是要取得 Documents 的路徑,
可以這麼用
NSString *documentPath = [[DTFileController mainController] documentPath];
而且它是可以在多執行續下保證它的物件是唯一的,
這樣子就不會因為多一個執行續多一個相同的物件多消耗記憶體空間。