相关链接: IOS7开发~Xcode5制作framework
使用静态链接库(Xcode4.6.2)
一、理论部分
在实际的编程过程中,通常会把一些公用函数制成函数库,供其它程序使用,一则提搞了代码的复用;二则提搞了核心技术的保密程度。所以在实际的项目开发中,经常会使用到函数库,函数库分为静态库和动态库两种。和多数人所熟悉的动态语言和静态语言一样,这里的所谓静态和动态是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库;而动态库在程序编译时并不会被链接到目标代码中,只是在程序运行时才被载入,因为在程序运行期间还需要动态库的存在。
静态链接库适用于:
1.你想将一部分以后都不会修改的代码打包,供其他项目使用
2.你想将一部分代码封装起来给别人用,又不愿别人看到你的实现方法
二、实践部分
如何制作静态链接库(以下简称lib):
1。如果是新工程。创建工程的时候选Framework&Library -> cocoa touch static library,就直接创建了一个静态链接库工程,默认会有两个跟工程名相同的.h和.m,继续添加文件,m都会自动加入到Build Phases->Compile Source中,表示这些代码会被编译进lib中,你可以删掉你不希望被编译的。
2. 如果是项目工程,想抽取一个lib出来,就add target,也是选Framework&Library -> cocoa touch static library。在xcode navigator里会多一个文件夹,和你新创建的target同名。同样,你可以在Build Phases->Compile Source里,添加你希望加入到lib中的文件。
下面:新建两个单视图模版项目DemoOne,DemoTwo,其中,我想把DemoTwo作为静态库,然后在DemoOne中使用:
a、打开DemoTwo
鼠标选择:
然后 点击Add Target,选择 Framework & Library -> Cocoa Touch Static Library -> 新建一个名字叫MyLib的库:
其中,MyLib这个target,就是我们想对外提供的库,这个库的对外提供的接口,是我们自己可以任意控制的,当然可以加多个target,每个target静态库可以提供不同接口,我这里只做一个静态库MyLib。让MyLib这个target 和 DemoTwo 建立时的默认target DemoTwo功能类似,所以