ios的应用,也不都是使用ios自带的框架或者自己写所有实现,有时需要使用第三方库,比如ios调用flurry做统计分析。
下面简要说明,如何创建自己的库,并且部署到另外的项目中使用。
通过xcode的想到可以很容易的创建库。为了简单起见,这里只用objc写最简单的类代码。当然是可以用c、c++语法写库函数的,而且也很常见。
ios为了安全上的考虑,只允许使用静态库,即静态联编到应用程序中。动态库,是独立存在的,直到应用运行时才加载到应用内存中。
然后,起个名字,静态库项目就建好了。
在Classes目录下创建文件:
创建普通的类文件:
创建好的样子:
在头文件中增加了个方法:
@interface Tools : NSObject {
}
-(void)sayHello;
在m文件中实现方法:
@implementation Tools
-(void)sayHello{
NSLog(@">>hello!!!");
}
编译,会在Products下看到:
libMyLib.a就是生成的静态库文件。
创建一个新的项目,调用这个库文件。创建一个最简单的window-base的iphone项目。
然后,在finder中找到库项目的xcodeproj文件:
把该文件拖拽到这里:
会弹出以下窗口:
点击add即可。鼠标选中Targets下的项目,然后command+i
将调出target的信息对话框,照下面图的箭头提示做:
然后,选中.a的库文件,拖拽到指定位置:
还需要,让使用的项目知道库的.h文件在哪里。如下图:
鼠标选中UseMyLib,然后command+i,在弹出的info对话框中指定头文件的搜索路径,实际上就是指定库项目的目录即可。
这样部署就可以了。搞的这么麻烦是因为,方便库项目和使用库项目之间的联调。比如在使用库的过程中发现问题直接改库的代码并编译,再编译运行使用库的项目,不需要重新部署库了。
在需调用库的代码的头文件中加入:
#import <UIKit/UIKit.h>
#import "Tools.h"
@class Tools;
然后在m文件中使用:
Tools *tools=[Tools new];
[tools sayHello];