阅读 3375

iOS组件化之pod加载资源文件

前言 :加载资源文件有两种情况 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文件

加载图片

文章分类
iOS
文章标签