获取图片路径为空的问题
2016-02-12 09:38
239 查看
_1.问题描述:_
在使用NSString *path = [[NSBundle mainBundle]pathForResource:picName ofType:nil];
方法获取图片绝对路径时,获取到路径为 null, 即路径获取失败,运行提示类似如下异常:
【Could not load the <图片名字> image referenced from a nib in the bundle with identifier <项目名字>】
导致后来通过图片路径将图片添加到数组中失败,提示无法添加空对象.
_2.问题分析:_
原文:/article/1612828.html问题出在将图片导入项目的步骤.将图片文件夹拖入 Xcode 时,会有两个Added folders选项:

Create groups
Create folder references
如果选择了第一种方式添加了一个文件,我们会发现被添加进来的文件,文件夹是黄色的
选择了第二种方式添加进来的文件的文件夹是蓝色的
那么两种方式有什么区别呢?
1.使用Create groups,为任何新增加的文件夹创建组,组的概念也许我们并不陌生,我们在项目中完全可以手动添加一个groups(右键点击选择New Group),但是手动添加的groups实际上并不会存在于项目的目录中,你会发现被添加进groups中的文件仍在位于它原来所在的位置,但是从外部引入进来的groups并不会如此,正如我们刚才那样。groups一旦被创建或添加,都是以黄色文件夹的形式存在的,当你想要使用文件夹中的某个类的头文件时,你可以直接添加它的引用,例如
'#include xxx.h
因为groups下的cpp文件是会被编译的。
2.使用Create folder references 方法只是将文件单纯的创建了引用,这些文件不会被编译,所以在使用的时候需要加入其路径,比如在我们想要使用上图中的myScripts文件夹下面有某个头文件,则需要按照下面的方法添加声明:
'#include myScripts/xxx.h
否则编译器就会告诉你找不到xxx.h文件。
这就是项目中黄色文件夹与蓝色文件夹的区别以及使用方法
至于Destination对应选项,当你选择了这个选项时,如果你想要引入的文件不在你的项目文件的目录下,Xcode则会自动将这个文件复制一份拷贝到你的项目的目录下
如果你不选择,并且这个文件也并不在你的项目目录下,那么这个文件仍然可以被使用,但是一旦你将项目拷贝到了别的地方时,这个文件就会找不到了。因为这个文件在你的电脑中,而不在你的项目中。
_3.解决方法:_
添加图片文件时,选择第一个选项Crest groups, 将其进行编译相关文章推荐
- ZOJ 2770_Burn the Linked Camp
- ZOJ 2770_Burn the Linked Camp
- ZOJ 2770_Burn the Linked Camp
- 从贝叶斯方法谈到贝叶斯网络
- poj1154(大水题)
- 创业的第一百一十八天
- native Qt signal is not callable
- 关于使用Genymotion被墙的临时解决方案
- 【C语言】C语言关键字
- 【Python】python对象与json相互转换
- JavaScript判断表单为空及获取焦点的方法
- Ubuntu14.04 LTS更新源
- Transitioning From Kali 2.0 to Kali Rolling
- FreeRTOS系列第15篇---使用任务通知实现命令行解释器
- 使用原生方法从kafka消费消息
- android 半orm 数据库框架(dileber数据库框架)
- 从头认识Spring-2.2 默认自动装配
- Web开发人员常犯的10个错误
- 使用 Code Snippet 简化 Coding
- ubuntu命令行打开html文件的方法