ios将音频和视频url保存到文档目录中

ios将音频和视频url保存到文档目录中,ios,audio,video,nsdocumentdirectory,Ios,Audio,Video,Nsdocumentdirectory,我需要保存所有的音频和视频网址到文件目录,从服务器来。我尝试了一个示例代码 NSData *urlData = [NSData dataWithContentsOfURL:[NSURL URLWithString: "http://www.ebookfrenzy.com/ios_book/movie/movie.mp4"]]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomai

我需要保存所有的音频和视频网址到文件目录,从服务器来。我尝试了一个示例代码

NSData *urlData = [NSData dataWithContentsOfURL:[NSURL URLWithString: "http://www.ebookfrenzy.com/ios_book/movie/movie.mp4"]];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString  *documentsDirectory = [paths objectAtIndex:0];
NSString *dataPath_ = [documentsDirectory stringByAppendingPathComponent:@"/MyFolder"];
NSString *newStr = [@"test" stringByAppendingString:[NSString stringWithFormat:@".mp4"]];
NSString *FilePath = [NSString stringWithFormat:@"%@/%@",dataPath_,newStr];
[urlData writeToFile:FilePath atomically:YES];

文件夹正在文档目录中创建,但视频未保存到文件夹中。是否有人可以帮助解决此问题。

您应该正确构建路径,并执行一些基本的错误检查:

NSData *urlData = [NSData dataWithContentsOfURL:[NSURL URLWithString: @"http://www.ebookfrenzy.com/ios_book/movie/movie.mp4"]];
if (urlData) {
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *dataPath = [documentsDirectory stringByAppendingPathComponent:@"MyFolder"];
    // Create folder if needed
    [[NSFileManager defaultFileManager] createDirectoryAtPath:dataPath withIntermediateDirectories:YES attributes:nil error:nil];

    NSString *filePath = [dataPath stringByAppendingPathComponent:@"test.mp4"];
    if ([urlData writeToFile:filePath atomically:YES]) {
        // yeah - file written
    } else {
        // oops - file not written
    }
} else {
    // oops - couldn't get data
}

Maddy,我在其他部分出错oops无法获取数据,我已通过打印urlData(null)与NSLog进行了检查。我如何实现这一点?我刚刚注意到您的URL字符串前缺少
@
符号。Maddy,我使用了@symbol,但urlData打印为(null)。该URL实际有效吗。它在iOS设备上的浏览器中工作吗?Maddy,这个url在模拟器中运行得很好。