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,这样就可以直接使用静态库了,超级简单有木有。。。。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。