为什么我可以从主包中加载本地xml文件,但是我无法加载图像?
NSString * path = [[NSBundle mainBundle] resourcePath];
这会被加载(我知道因为我可以追踪它) / Users / me / Library / Application Support / iPhone Simulator / User / Applications / 5B888456-40FF-4C72-A2ED-5D5CFA287777 / MyApp.app / test.xml
此图片从不加载(也没有任何图像): / Users / me / Library / Application Support / iPhone模拟器/用户/应用程序/ 5B888456-40FF-4C72-A2ED-5D5CFA287777 / MyApp.app / background.png
答案 0 :(得分:3)
您可以使用[UIImage imageNamed:@"background.png"]
。
这将加载background.png(它应该位于Xcode的Resources文件夹中)。
答案 1 :(得分:3)
你在评论中说你正在为路径创作一个NSURL。要对本地文件系统路径(例如捆绑包中的文件)执行此操作,您需要使用NSURL fileURLWithPath:
。
答案 2 :(得分:1)
这里有两种可能性:
1)您的图像文件名称不正确。这意味着,文件名区分大小写。所以可能是资本 - 小写字母的问题。
2)您可能已从图像属性中取消选中目标名称。这意味着您的图像不是您正在编译的项目目标的成员。要验证这一点,请右键单击XCode项目中的任何图像名称 - >选择获取信息 - >从“文件信息”对话框中选择“目标”选项卡 - >验证目标名称附近的复选框的状态。如果选择/检查它,则存在一个奇怪的问题。但如果未选中/取消选中,则表示图像未添加到编译后创建的包文件中。
这里的第三种可能性是您可能没有添加您所指的图像。重新检查您的项目层次结构&看到所有资源是否存在。
答案 3 :(得分:1)
像
这样的东西UIImage *testimg = [UIImage imageNamed:myfilename];
if (nil==testimg) [testimg initWithContentsOfURL:myurl];
我现在远离编译器,因此在将其作为图像之前,我无法检查是否需要将其下载到NSData对象。您还应该将initWithContents ...放在try ... catch ... finally块中。
答案 4 :(得分:0)
您好 使用以下代码
[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@“background”ofType:@“png”]];
答案 5 :(得分:0)
NSURL * imageURL = [NSURL URLWithString:@“bundle://background.png”];