iPhone - 从本地 xml 文件加载本地图像
Posted
技术标签:
【中文标题】iPhone - 从本地 xml 文件加载本地图像【英文标题】:iPhone - Loading local images from a local xml file 【发布时间】:2009-05-18 23:20:17 【问题描述】:为什么我可以从主包中加载本地 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 Simulator/User/Applications/5B888456-40FF-4C72-A2ED-5D5CFA287777/MyApp.app/background.png
【问题讨论】:
你说图像永远不会加载是什么意思?您如何尝试加载它? -1。没有足够的代码,没有代码显示预期与实际行为(例如,使用断言?)... 【参考方案1】:您可以使用[UIImage imageNamed:@"background.png"]
。
这将加载 background.png(它应该位于 Xcode 的 Resources 文件夹中)。
【讨论】:
我正在尝试编写一个字符串以发送到另一个加载图像的方法。它需要一个字符串,然后使用 NSURL *url = [NSURL URLWithString:imgPath];组成一个 NSURLConnection 来检索图像。我知道这听起来很复杂,但我尝试加载的图像可能在也可能不在 mainBundle 中。如果图像位于远程服务器上,则可以通过发送正确的 URL 来很好地加载,但我无法从主包中加载它。如果图像在 mainBundle 中,我将什么字符串传递给该方法? 为什么不先检查 imageNamed,如果失败,构建你的 URL?【参考方案2】:您在评论中说您正在为路径编写一个 NSURL。要对本地文件系统路径执行此操作,例如捆绑包中的文件,您需要使用 NSURL fileURLWithPath:
。
【讨论】:
但问题是关于加载本地图像。因此,没有必要使用 NSURL & 然后在 UIImage 方法中给出它。【参考方案3】:这里有两种可能:
1) 您的图像文件名不正确。这意味着,文件名区分大小写。所以可能是大写小写字母的问题。
2) 您可能已从图像属性中取消选中目标名称。这意味着您的图像不是您正在编译的项目目标的成员。要验证这一点,请右键单击 XCode 项目中的任何图像名称 --> 选择获取信息 --> 从文件信息对话框中选择目标选项卡 --> 验证目标名称附近复选框的状态。万一,它被选中/选中,那么就会出现一个奇怪的问题。但是如果它没有被选中/取消选中,这意味着图像没有被添加到编译后创建的包文件中。
这里的第三种可能性是您可能没有添加您所指的图像。重新检查您的项目层次结构并查看所有资源是否存在。
【讨论】:
【参考方案4】:类似
UIImage *testimg = [UIImage imageNamed:myfilename];
if (nil==testimg) [testimg initWithContentsOfURL:myurl];
我现在远离编译器,所以我无法检查是否需要先将其下载到 NSData 对象,然后再将其制作为图像。您还应该将 initWithContents... 放在 try...catch... finally 块中。
【讨论】:
【参考方案5】:嗨 使用以下代码
[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"background" ofType:@"png"]];
【讨论】:
【参考方案6】:NSURL *imageURL = [NSURL URLWithString:@"bundle://background.png"];
【讨论】:
以上是关于iPhone - 从本地 xml 文件加载本地图像的主要内容,如果未能解决你的问题,请参考以下文章
使用phonegap从iPhone中的Documents文件夹加载本地网站?
如何将图像、pdf、音频、视频和任何文件系统从 iphone 本地内存上传到服务器(API)