UIImage imageWithContentsOfFile 不起作用(ImageNamed 工作正常)

Posted

技术标签:

【中文标题】UIImage imageWithContentsOfFile 不起作用(ImageNamed 工作正常)【英文标题】:UIImage imageWithContentsOfFile does not work (ImageNamed works fine) 【发布时间】:2014-06-18 13:12:32 【问题描述】:

我正在努力显示图像。

以下代码可以正常工作。

imageView.image = [UIImage imageNamed:@"picture"];

imageView.image = [UIImage imageNamed:@"picture.png"];

但是下面的代码不起作用。

NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"picture" ofType:@"png"];
imageView.image = [UIImage imageWithContentsOfFile:theImagePath];

imageView.image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"picture" ofType:@"png"]];

我尝试清理项目,但尚未修复。 有没有人有同样的经历?

【问题讨论】:

没有理由它不应该工作。该错误很可能出现在代码中的其他地方。还有,你为什么不想用imageNamed 您是否尝试过分解其中一些电话?在使用 NSString 的情况下 *theImagePath = [[NSBundle mainBundle] pathForResource:@"picture" ofType:@"png"]; theImagePath 是否返回任何内容? @PeterFoti 因为我收到内存警告,发现如果显示大图像或多次调用 imageNamed,imageNamed 会发出内存警告。 @RobSegal theImagePath 返回(空)。有什么想法吗? @tomo 好吧,这绝对是有启发性的。您是否尝试过 NSString *theImagePath = [[NSBundle mainBundle] pathForResource:@"picture.png" ofType:@""]?您还应该检查打包的二进制文件,以确保您的图像确实在要找到的包中。 【参考方案1】:

imageView.image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"picture.png" ofType:nil]];

试一试,Xcode 可能无法将您的文件识别为 PNG 文件。

但是你为什么不留在imageNamed:呢?

【讨论】:

感谢您的回复。正如你所建议的,我试过了,但结果是一样的。

以上是关于UIImage imageWithContentsOfFile 不起作用(ImageNamed 工作正常)的主要内容,如果未能解决你的问题,请参考以下文章

在另一个 UIImage 之上添加 UIImage

Swift 从两个 UIImage 并排生成单个 UIImage

将UIImage转换为NSData并在Swift中转换回UIImage?

UIImage + NSCache 与 [UIImage imageNamed:]

将 UIImage 转换为 NSData 并在 Swift 中转换回 UIImage?

设置UIImage 圆角