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

前言 :加载资源文件有两种状况 Podfile 文件使用 use_frameworks! 和不使用 use_frameworks!swift

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 会发现展现不出来.

       为何?markdown

       1.5.1 找到app Show in finderapp

   1.5.2 显示包内容spa

1.5.3 找到bundle显示包内容,会发现图片在里面3d

解释:code

咱们使用imageName去读图片,会去主mainBundle里面找图片,可是咱们使用的是Podfile 文件使用 use_frameworks! ,pod库会转成framework,资源文件也在framework里面,因此咱们要指定路径.orm

获取图片方式图片

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文件

加载图片

相关文章
相关标签/搜索