目前官方允许的档案储存位置只有两个地方
一个是 /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];
而且它是可以在多执行续下保证它的物件是唯一的,
这样子就不会因为多一个执行续多一个相同的物件多消耗内存空间。