ios - NSData不接受转义的/UTF8编码的URL

原文 标签 ios nsurl

我正在尝试创建一个NSData对象,该对象包含主捆绑包中文件的内容。

NSString *chordPath = [[NSBundle mainBundle] pathForResource:chordName ofType:@"png"];

NSURL *chordURL = [NSURL URLWithString:[chordPath stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
NSData *chordImageData = [NSData dataWithContentsOfURL:chordURL];
UIImage *chordImage = [UIImage imageWithData:chordImageData];


在使用stringByAddingPercentEscapesUsingEncoding之前,我得到了一个nil URL,所以我继续进行操作,并通过重新编码字符串来解决了该问题。现在,我获得了一个有效的URL,但chordImageData对象对我而言却为零。该文件肯定包含在我的主捆绑包中(因为我能够获得开始的URL),所以我想知道出了什么问题。

编辑:

运行此:

NSData *chordImageData = [NSData dataWithContentsOfURL:chordURL options:NSDataReadingMapped error:&dataCreationError];

让我得到这个错误:

po dataCreationError
Error Domain=NSCocoaErrorDomain Code=256 "The operation couldn’t be completed. (Cocoa error 256.)" UserInfo=0x7530a00


环顾Google,似乎该URL仍未正确编码。有人知道要确保编码有效的附加步骤吗?

最佳答案

尝试使用fileURLWithPath :,如下所示:

NSString *chordPath = [[NSBundle mainBundle] pathForResource:chordName ofType:@"png"];

NSURL *chordURL = [NSURL fileURLWithPath: chordPath];
NSData *chordImageData = [NSData dataWithContentsOfURL:chordURL];
UIImage *chordImage = [UIImage imageWithData:chordImageData];

关于ios - NSData不接受转义的/UTF8编码的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12785900/

相关文章:

ios - prepareForSegue发送从数组中提取的错误(延迟)字符串到第二个 View Controller

iphone - NSURL 和 URL 有效性

objective-c - 在哪里提供 NSURL 值?

iOS URL 编码 NSString 结果总是(空)

swift - 初始化 NSURLComponents 实例时将 false 和 true 传递给 'resolvingAgainstBaseURL' 有什么区别?

ios - layoutIfNeeded 中的代码被调用两次

ios - Reskit 解析同一字段的多种类型的数据

ios - NSOperation 中的 AFNetworking 操作

ios - 自动布局约束不起作用

ios - Swift 中我的 UICollectionView 中没有显示图像