首先创建一个请求去请求网络数据:
// 1.创建请求
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"文件路径"]];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
// 2.设置缓存策略(有缓存就用缓存,没有缓存就重新请求)
request.cachePolicy = NSURLRequestReturnCacheDataElseLoad;
// 3.发送同步请求
NSData * data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
接下来判断文件数据是否下再下来了,前提是需要知道文件的类型和文件名.然后对数据存储:
//在沙盒的Caches文件夹里面创建一个fileManage的文件夹来存放需要保存的文件
NSArray * pathsLibrary=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory,NSUserDomainMask,YES);
NSString * pathLibrary=[pathsLibrary objectAtIndex:0];
NSString * imageDir = [NSString stringWithFormat:@"%@/Caches/fileManage",pathLibrary];
NSFileManager * fileManager = [NSFileManager defaultManager];
//判断文件夹是否成功创建
if (![[NSFileManager defaultManager] fileExistsAtPath:imageDir])
{
[fileManager createDirectoryAtPath:imageDir withIntermediateDirectories:YES attributes:nil error:nil];
}
//获取沙盒路径Library文件夹
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
//先创建一个文件,得到创建文件的路径
NSString * docPath = [[paths lastObject] stringByAppendingString:[NSString stringWithFormat:@"/fileManage/%@",@"文件名(一定是有文件类型后缀的)"]];
//把得到的数据写入到文件中去
[data writeToFile:docPath atomically:YES];
存储数据之后,我们来看看如何对存储的数据进行读取:
NSArray * paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *docPath = [[paths lastObject] stringByAppendingString:[NSString stringWithFormat:@"/fileManage/%@",@"文件名"]];
得到的docPath就是文件的路径.我们可以使用苹果自带的QuickLook框架来对文件进行查看读取,后面我会更新一篇如何使用QuickLook框架对文件读取的文章,敬请关注!