ios开发 静态库制作

IOS程序是由Objective-c语言构成,而是Objective-c语言中每一个类又分成 .h .m 文件。静态库可以将这些程序的类封装成一个.a文件,第三方应用程序只需要拿到这个.a文件和代码对应的.h文件即可使用静态库中封装的方法。总的来说IOS静态库适合去制作第三方提供的SDK,废话不多说了我们直接进正题。

制作静态库

 

代码如下

 1 #import <Foundation/Foundation.h>
 2 
 3 @interface BookModelLib : NSObject
 4 {
 5     NSString* _iconUrl;
 6     NSString* _bookName;
 7     NSString* _publisher;
 8     NSString* _price;
 9     NSString* _autherName;
10     NSString* _pubdate;
11     NSString* _translator;
12     NSString* _introUrl;
13     NSInteger _numRatings;
14 }
15 @property(retain, nonatomic)NSString* iconUrl;
16 @property(retain, nonatomic)NSString* pubdate;
17 @property(retain, nonatomic)NSString* introUrl;
18 @property(retain, nonatomic)NSString* autherName;
19 @property(retain, nonatomic)NSString* translator;;
20 @property(retain, nonatomic)NSString* bookName;
21 @property(retain, nonatomic)NSString* publisher;
22 @property(retain, nonatomic)NSString* price;
23 @property(assign, nonatomic)NSInteger numRatings;
24 
25 -(void)showInfo;
26 
27 
28 @end
 1 #import "BookModelLib.h"
 2 
 3 @implementation BookModelLib
 4 
 5 -(void)showInfo
 6 {
 7     NSLog(@"_bookName:%@",_bookName);
 8     NSLog(@"_publisher:%@",_publisher);
 9     NSLog(@"_price:%@",_price);
10 }
11 
12 @end

cmd+B编译,编译的时候选择两种环境编译

合并.a文件 

lipo -create libBookModelLib_os.a libBookModelLib_lib.a -output libBookModelLib.a

使用静态库

使用静态库就比较简单了,将.h头文件和.a文件拖入项目

 1 #import "ViewController.h"
 2 #import "BookModelLib.h"
 3 
 4 @interface ViewController ()
 5 
 6 @end
 7 
 8 @implementation ViewController
 9 
10 - (void)viewDidLoad
11 {
12     [super viewDidLoad];
13     // Do any additional setup after loading the view, typically from a nib.
14     
15     BookModelLib *bModel=[[BookModelLib alloc]init];
16     bModel.bookName=@"fewfwefe";
17     bModel.iconUrl=@"http://fjoewjf";
18     bModel.publisher=@"fewfewfewew";
19     bModel.price=@"few50";
20     [bModel showInfo];
21     
22 }
23 
24 - (void)didReceiveMemoryWarning
25 {
26     [super didReceiveMemoryWarning];
27     // Dispose of any resources that can be recreated.
28 }
29 
30 @end

呵呵,ok,这样就可以直接使用静态库了,超级简单有木有。。。。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。