将 url 转换为 NSData

Posted

技术标签:

【中文标题】将 url 转换为 NSData【英文标题】:convert url into NSData 【发布时间】:2016-11-10 07:22:53 【问题描述】:

我想在服务器上上传录音。

我的文件网址是:

file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/87C457FA-1A9F-4CA9-A651-6A3D411A0B7E/Documents/myAudio0.mp3

我的代码是:

NSData* data = [NSData dataWithContentsOfURL:audioURL options:NSDataReadingUncached error:&error];

但数据为零。

【问题讨论】:

看到一次***.com/questions/11525942/play-audio-ios-objective-c 尝试使用absoluteURL NSData* data = [NSData dataWithContentsOfURL:[audioURL absoluteURL]options:NSDataReadingUncached error:&error]; 无效,也出现 nil 。 试试dataWithContentsOfFile 我也用过。 【参考方案1】:

请尝试以下代码

NSString *audioURLString = @"file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/87C457FA-1A9F-4CA9-A651-6A3D411A0B7E/Documents/myAudio0.mp3";
NSString *sendStr = [[audioURLString absoluteString] stringByReplacingOccurrencesOfString:@"file:///private" withString:@""];
NSData *data = [[[NSData dataWithContentsOfFile:sendStr]]];

祝你好运.....

【讨论】:

【参考方案2】:

使用此代码从 Document 文件夹中获取数据:

if([[NSFileManager defaultManager] fileExistsAtPath:filepath)

   NSData *data = [[NSFileManager defaultManager] contentsAtPath:filepath];

else

   NSLog(@"File not exits");

【讨论】:

【参考方案3】:

你只需要这样做:

NSURL *imgPath = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"png"];
NSString *path = [imgPath absoluteString];  
NSData *data = [NSData dataWithContentsOfURL: [NSURL URLWithString:path];

【讨论】:

【参考方案4】:

试试这个

NSData* data =[[NSData alloc]init];
data = [NSData dataWithContentsOfFile:[NSURL URLWithString:path]];

【讨论】:

【参考方案5】:

运行后: file:///Users/xantatech/Library/Developer/CoreSimulator/Devices/77F4D768-1F04-4390-B60F-F1FE79388653/data/Containers/Data/Application/"87C457FA-1A9F-4CA9-A651-6A3D411A0B7E"/Documents/myAudio0.mp3 粗体字“87C457FA-1A9F-4CA9-A651-6A3D411A0B7E”可能会改变; 您应该始终使用该方法获取沙盒中的路径:

NSString *path = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)lastObject] stringByAppendingPathComponent:@"myAudio0.mp3"];

【讨论】:

【参考方案6】:

你可以用这个:

NSData *data = [NSData dataWithContentsOfURL:yourURL];

【讨论】:

以上是关于将 url 转换为 NSData的主要内容,如果未能解决你的问题,请参考以下文章

将 NSData 转换为 NSDictionary

如何将 nsdata 转换为 MPMediaitem 歌曲 iOS Sdk

如何使用 ios 中的视频 url 将从图库中挑选的视频转换为 NSData?

将 NSData 转换为 NSString 并再次转换为 NSData?

将 NSData 转换为 NSString 后如何将 NSString 转换回 NSData?

将字符串转换为 NSData 并将 NSData 转换回字符串