iPhone - 从本地xml文件加载本地映像

时间:2009-05-18 23:20:18

标签: iphone resources local

为什么我可以从主包中加载本地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

6 个答案:

答案 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”];