加载资源文件有两种方式,分别是:
- s.resources = 'xxx/xxx/x.png'(下面我们称之为1方式)
- s.resource_boudles = {
'xxx' => ['xxx/xxx/.png']
} ;(2方式)
对于这两种方式,我一直很迷惑,也没有时间去搞清楚两种到底是什么区别,最近抽出时间,做了一次实验和总结。
其实两种方式都能实现获取资源文件,但是,他们之间是有区别的,方式不一样,取资源的方式也不一样。
首先,他们之间的区别主要1方式会复制资源文件到目标工程,2方式会建立对应的bundle,把资源文件放进bundle里;但是他们还和pod集成方式有关即use_frameworks! 以什么方式集成(一般情况下swift必须以动态库的方式集成,Objc以静态库的方式集成)下面说明动态库集成和非动态库集成对于两种方式加载资源文件的影响。
- 用非use_frameworks!的方式集成
用当前方式集成的三方库为静态库;如果用1中方式加载的话,会将资源文件拷贝到目标文件,用2方式会在目标根目录生成对应bundle,资源文件放在bundle里; - 用use_frameworks!的方式集成
用1方式加载,会在根目录生成对应的三方库.framework,资源问价会拷贝到此目录下。
用2方式加载, 会在三方库.framework 中生成对应bundle文件,资源文件放在bundle里。
两种方式对于use_frameworks!和非use_frameworks!的加载其实方式一样,但是注意根目录不一样。
当然关于获取这些资源文件的时候需要注意了,注意图片的位置。
网友评论