作者:手机用户2502893675 | 来源:互联网 | 2023-05-17 19:49
NSBundlepathForResource取不到值问题一、问题描述:初学UI,照着视频敲汤姆猫项目,做到加载图片(含jpg格式)时有两种方法可以实现一种是有缓存,一种
NSBundle pathForResource取不到值问题
一、问题描述:
初学UI,照着视频敲汤姆猫项目,做到加载图片(含jpg格式)时有两种方法可以实现一种是有缓存,一种是没有缓存。代码实现如下:
1.imageNamed: 有缓存(传入文件名)
UIImage *image = [UIImage imageNamed:filename]; // imageNamed 方法 直接传文件名,有缓存
2.imageWithContentsOfFile:没有缓存(传入文件的全路径):
// 获取文件全路径:
NSBundle *bundle = [NSBundle mainBundle];
NSString *path = [bundle pathForResource:filename ofType:nil]; // 传入文件名作为参数就可以加载全路径;
// NSString *path = [bundle pathForResource:@"imageDate.plist" ofType:nil]; 此代码等同上句,左边放文件名,右边放扩展名或者将plist写在后面
UIImage *image = [UIImage imageWithContentsOfFile:path]; // ~File 传文件全路径,无缓存;
使用第一种方法运行并点击控件按钮无错误;使用第二种方法点击运行无报错,但是点击控件按钮时报错如下:
图一:Xcode默认的文件勾选框
图二:修改后的文件勾选方式
三、分析与总结:碰到问题解决问题总会有收获的。过程虽然漫长、煎熬,但是记录下来下次就会倍加小心,俗话说,吃一堑,长一智。在我谷歌过程中发现国外的Stack Overflow 论坛上也有人遇到过此类问题:点击打开链接 http://stackoverflow.com/questions/3949368/nsbundle-pathforresource-is-null 。