我的问题并不涉及特定情况,而是全球性问题。
如何释放网址指向的空间?有时我们不能只使用NSData,我们必须将数据写入文件才能使用它,例如在使用MPMoviePlayerViewController
播放视频时。在我当前的应用程序中,我下载视频,然后让用户在他想要的时候播放它们,所以现在我正在这样做:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"MyFile.mp4"];
[dataVideo writeToFile:appFile atomically:YES];
self.movieURL = [NSURL fileURLWithPath:appFile];
我将数据写入文件,稍后
MPMoviePlayerViewController * movieView = [[MPMoviePlayerViewController alloc] initWithContentURL:videoURL];
但是,如果我的应用程序中有一点想要删除视频(无需用户干预),该怎么办?
其他示例,我使用swagger.io为我的应用程序生成客户端代码。下载的方法是由swagger自动生成的,我只需要使用这种方法:
[defaultApi pdfDocumentNameGetWithCompletionBlock:@"myDoc.pdf" completionHandler:^(NSURL *output, NSError *error) {
}];
如您所见,此方法为我提供了下载数据的URL,与
不同NSURLSessionDownloadTask * downloadTask = [self.mySession downloadTaskWithURL:downloadURL completionHandler:^(NSURL * _Nullable location, NSURLResponse * _Nullable response, NSError * _Nullable error) {
}];
即使您没有对数据执行任何操作,退出完成处理程序时也不会释放空间。 (我检查了) 有人可以解释一下内存管理如何与本地URL一起使用吗?
谢谢,