前言 :加载资源文件有两种情况 Podfile 文件使用 use_frameworks! 和不使用 use_frameworks!
oc工程的podfile一般是不使用use_frameworks!的,swift和自己创建的lib库是默认有的,关于这两点的差异,如果不使用framework,pod里的资源文件会被打成bundle放在mainbundle下面,由于开发中每个pod库对于use_frameworks!的使用情况不一样
(一).使用****use_frameworks!
1.0 第一种方法使用resource_bundles
1.1 进入TJYNetWork.podspec把resource_bundles注释打开
1.2把资源加入Assets文件夹中
1.3 pod install 资源会出现在Resources文件下
1.4我们使用常规取图片的方式展示这张图片.
UIImage *image = [UIImage imageNamed:@"1024"];
1.5 会发现展示不出来.
为什么?
1.5.1 找到app Show in finder
1.5.2 显示包内容
1.5.3 找到bundle显示包内容,会发现图片在里面
解释:
我们使用imageName去读图片,会去主mainBundle里面找图片,但是我们使用的是Podfile 文件使用 use_frameworks! ,pod库会转成framework,资源文件也在framework里面,所以我们要指定路径.
获取图片方式
2.第二种方法采用s.resources加载资源
2.1进入TJYNetWork.podspec写上resources和路径
1.2把资源加入Assets文件夹中
1.3 pod install 资源会出现在Resources文件下
1.4 查看资源位置
和上面一种方式对比:
其实相对于resource_bundles少了个打包的bundle,resource_bundles会自动创建一个bundle
1.5 获取图片方式
(二).不使用use_frameworks!
1.0 第一种方法使用resource_bundles
1.1和使用use_frameworks对比,资源路径在哪?
1.2 现在这个bundle就不在framework下面,直接在主包里面.
1.3获取资源图片,只用换下路径
2.第二种方法采用s.resources加载资源
2.1.显示包内容查看资源文件路径
和上面不同的是上面的图片资源全部被自动打包到TJYNetWork.bundle中,这个里面的图片资源没有打包成bundle,而是直接显示在主包mainBundle中的,这种方式加载图片时可以直接采用imageNamed,同时也不需要写出完整的图片名字
2.2 加载图片
(三) 通过class类型查找对应的bundle目录,这种在category中不能使用,虽然可以通过传入class的方式查找,但是容易出错。
1.自己建一个bundle文件
加载图片