我正在尝试创建一个包含主包中文件内容的 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
对象对我来说是 nil。该文件肯定包含在我的主包中(因为我能够获得开始的 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
环顾谷歌,似乎该 URL 仍未正确编码。有人知道确保编码有效的额外步骤吗?