【问题标题】:file exists but will not load?文件存在但不会加载?
【发布时间】:2011-05-22 02:10:44
【问题描述】:

我已经在我的资源包中添加了一个资源(蓝色文件夹),一切似乎都很好,甚至我使用 NSFileManger 来确定文件是否存在,以及它是否打印出检查中使用的完整路径喜欢这样:

NSString *p = [NSString stringWithFormat:@"%@/words/001", 
   [[NSBundle mainBundle] resourcePath]];

NSFileManager *fm = [NSFileManager defaultManager];

NSString *a = [p stringByAppendingPathComponent:@"001-1.png"];

UIImage *i;

if ([fm fileExistsAtPath:a]) {

  NSLog(@"file found ... %@", a);

  i = [UIImage imageWithContentsOfFile:a];
}
else {

  NSLog(@"doh!");
} 

[iv setImage:i];

我从文件存在检查中得到这个输出

/Users/phh/Library/Application Support/iPhone Simulator/4.2/Applications/3DAB4772-7251-4E39-8EA8-4AFE32DFB61A/MyApp.app/words/001/001-1.png

但 UIImage 总是为零?我只是看不到这里发生了什么......

帮助....?

谢谢

【问题讨论】:

  • 你从哪里得到的图像是 nil?
  • 你的word和001文件夹是蓝色的吗?

标签: iphone ios uiimage nsfilemanager


【解决方案1】:

imageWithContentsOfFile: 的返回值为

指定的新图像对象 文件,如果方法不能,则为 nil 初始化图像 指定文件。

您确定该位置的文件是有效的图像文件吗?

【讨论】:

  • 嗨,是的,因为当我在 XCode 中选择它时,它会显示正确的图像。我也可以在Finder的文件夹中看到它并在PS中打开它。这真让我抓狂! :-(
  • 虽然说我只是复制了另一张我知道在应用程序中有效的图像....而且它有效!我将不得不仔细检查那个不起作用的那个??会让你知道谢谢你的指针 BTW
  • DOH!!我今天学到了一些关于图像文件和 PhotoShop 的新东西。保存图像时要小心,尽管我使用 .png 扩展名保存它们实际上是 PhotoShop PSD 文件!因此 .png 文件存在,但 IOS 无法打开它!感谢您的宝贵指点
【解决方案2】:

在将图像传递给 i 时尝试一下

 i = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"001-1.png" ofType:@"png" inDirectory:@"word/001"];

编码愉快...

【讨论】:

    猜你喜欢
    • 2010-12-21
    • 1970-01-01
    • 2022-01-03
    • 2017-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-01
    • 1970-01-01
    相关资源
    最近更新 更多