我正在尝试加载像这样的图像字节:
NSURL *img = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"img" ofType:@"png"] isDirectory:NO];
NSString * test = [NSString stringWithContentsOfFile:[img absoluteString] encoding:NSASCIIStringEncoding error:&err];
但我总是得到以下错误:
Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn\u2019t be completed.
(Cocoa error 260.)" UserInfo=0xc02abf0
{NSFilePath=file://localhost/Users/admin/Library/Application%20Support/iPhone%20Simulator/4.3.2/Applications/C55551DB-152A-43D6-A1E0-9845105709D6/myApp.app/img.png,
NSUnderlyingError=0xc02ccc0 "The operation couldn\u2019t be completed. Folder or file does not exist"}
但是文件存在,如果我将NSFilePath复制/粘贴到浏览器中,它会找到图像。可能有什么不对?
答案 0 :(得分:2)
为什么不
NSString *path = [[NSBundle mainBundle] pathforResource:@"img" ofType:"png"];
NSData *data = [NSData dataWithContentsOfFile:path];
你不能只在NSString中存储随机字节 - 它会尝试将它们转换为字符串并可能失败。您需要将NSData对象用于二进制数据。
您根本不需要使用NSURL; NSBundle
将为您提供一个字符串路径。
答案 1 :(得分:1)
在使用文件网址时,请在第二行使用[img path]
代替[img absoluteString]
。
或在第一行使用[NSURL URLWithPath]
。
答案 2 :(得分:1)
在NSData中存储字节:
NSData *bytes = UIImagePNGRepresentation([UIImage imageNamed:@"myImage.png"]);
答案 3 :(得分:0)
NSData* imageData = UIImagePNGRepresentation("imagename.."); //the image is converted to bytes