Xcode中拖入资源时弹出的窗口

如果将资源文件/文件夹拖入项目,那么会Xcode弹出一个窗口:
在这里插入图片描述

1.Destination:

意思是说是否要在项目目录下复制资源。

  • 选中和未选中的区别

如果选中Copy items if
needed,那么在项目目录下(这是说的是真实目录,不是Xcode左侧那个),会拷贝一份与拖入的资源相同的资源。

如果未选中,则不会进行拷贝,而是对拖入的资源进行引用。

这与在代码中进行传值和传址很像。如果选中,则像传值,会拷贝一份,与原来的资源互不影响;如果未选中,则像传址,相当于对原来的资源进行引用。

  • 未选中可能带来的后果
    比如当代码和资源分开(比如不在一个电脑上),那么对原来资源的引用就失效了,那么资源也就不能用了。

  • 删除项目资源的时候可能出现的问题
    当删除资源时,会弹出一个窗口,让我们选择是删除引用还是移到垃圾箱。
    ①如果选中Copy items if needed,那么会有一份拷贝,所以我们如果想彻底删除,那么要选择移到垃圾箱,这样无论在Xcode左侧的导航里还是真正的项目目录里,都将资源删除了。如果选择了删除引用,那么只会删除Xcode左侧导航的资源名称,而资源的拷贝还存在于项目的真实目录中。
    ②如果未选中Copy items if needed,那么如果想正确删除,应该是选择删除引用,这样这个项目就不再对原来的资源进行引用。但是如果选择了移到垃圾箱,那么会将原来的资源也一起删除,即使它并不在你的项目目录里。要慎重。

2.Added folders:

如果是文件,那么无论选择Create groups还是Create folder references都是一样的。

如果是文件夹:

  • 选择Create groups
    那么说明在真实的项目目录里面(MainBundle),并不会创建文件夹。比如拖进一个文件夹,里面有两张图片还有一个子文件夹,子文件夹里面还有一张图片,如果选择了Create groups,那么这个结构在Xcode左侧是一致的,但是在项目目录里面,并没有创建文件夹,直接是三张图片。如果用imageNamed:这个方法,可以直接用图片的名字,前面不用加文件夹的名字,因为imageNamed:是看真实的项目目录里面的结构,而不是Xcode左侧的文件结构。(「左侧如果是蓝色文件夹,那么是实体文件夹;如果是黄色文件夹,那么是虚拟文件夹,在真实的目录实际是没有的」。)

  • 选择Create folder references
    那么会根据传入的文件夹结构,创建蓝色的文件夹,也就是在真实的项目目录里会创建文件夹。如果此时用imageNamed:方法,那么需要加上路径:
    UIImage *image = [UIImage imageNamed: @“Images/image”];

总结就是如果传入一个文件夹资源,Create groups不会创建真实文件夹;Create folder references会创建真实文件夹。

3.Add to targets:

意思是是否将这个资源包打包到最终的资源包里面。

我们将程序安装到手机上,实际上是将其打包然后安装,如果没有选择这个选项,那么导入的资源将不会参与打包。

参考资料:https://www.jianshu.com/p/6d78444bea96

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值