将 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 尝试使用absoluteURLNSData* 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 转换为 MPMediaitem 歌曲 iOS Sdk
如何使用 ios 中的视频 url 将从图库中挑选的视频转换为 NSData?
将 NSData 转换为 NSString 并再次转换为 NSData?