1.概述:apple的开发,主要提供了两种库:一种是静态库,系统自带的.framework和本身建立的.a文件,主要在编译时供调用;还有一种是动态库,主要以.dylib结尾(或直接为.o文件),在运行时建立成.o文件连接到工程文件中供调用。苹果目前只提供静态库的封装为主,接下来就介绍.a静态库的封装。架构
2.功能:主要有2大用途:1).功能模块化,便于重用;2).保密源文件内部实现,保护源文件隐私。app
3.步骤:建立一个新的project工程文件->选择cocoa touch static library->建立供他人调用的.h和.m文件->以.h和.a文件来配合,用.h文件中提供的接口函数,须要供他人调用的函数接口须要暴露在.h文件中->由于框架是静态库,因此最后是编译生成.a文件->在products中找到文件位置->在须要引用的工程中添加.a文件和相应的.h头文件(注意link binary with library连接进去)。注:其实.a文件就是.m文件的集合,根据打包出来的.h文件来调用里面相应的.m文件。框架
4.示例:1.2.
3.
4
5
6
模块化
7.8.
9.
10
函数
5.问题:1).Product->scheme中注意release和debug版本。spa
2).若编译后.a文件是红色的说明没有成功,能够切换一下模拟器和device工程的目录生成黑色.a文件。debug
3).注意,模拟器由于是在mac下,cpu架构是x86的和device的iPhone等设备下arm的架构不一样,咱们能够对生成的文件进行查看lipo -info xxx.a ,若想同时使用便使用lipo -create .../模拟器/xxx.a .../设备/xxx.a -output .../输出位置/xxx.a。blog
4).若是设置了other linker flags 为-ObjC时,会出现archecture为i386而不是x86_64,这个视具体状况编译。接口