引言:
静态库是一个(.a)为后缀的文件,它由Xcode编译生成.并且,库中只能存放代码,如果编译静态库的工程中有其他资源是无法一起编译到静态库中.静态库有点类似Windows中的Dll文件.做过Windows桌面应用的人应该很熟悉.静态库出现的主要目的是为了让代码可以在多个地方重用.此篇主要记录在iOS中使用静态库时遇到的问题汇总和解决方案.
如何创建一个静态库:
解决方法如下:
确定 Library Search Paths 的路径是否指向正确:
六:Unknown class MyClass in Interface Builder file. 的解决办法
设置Other Linker Flag 的 -all_load
在使用静态库时,如果没有设置-all_load . 那么主工程在编译时是不会检测是否引用应该引用的框架(framework).
但是使用是没问题的,但是遇到需要框架才能执行的代码会崩溃,另外xib也会报出 找不到相应的类,除非在代码中主动调用.
七:静态库中的资源使用和管理的最佳解决方案.
使用Bundle捆绑包的方式来使用和管理资源.
步骤如下:
1:新建一个文件夹,将其命名为xxx.bundle. 以后 Mac自定识别到并标识为捆绑包.
2:将静态库使用的相关资源拷贝的bundle里面.
3:抒写代码的时候在路径方面有所改变,如下:
[UIImage imageNamed:@"PullTableView.bundle/arrowhead_up.png"]4:这一点是我的建议,将捆绑包还是放在静态库的目录里. 然后在拖动到主工程中时,不要选择复制到执行区域.如下图设置即可:
八:当一个项目里面有两个Target都需要使用同一个静态库时,应该这样操作才可以正常使用:
因为在Frameworks里面只会生成一个.a 文件. 所以直接在Target Membership直接勾选即可.
,而是深沉的意志恢弘的想象炙热的恋情;青春是生命的深泉在涌流。