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;
2425 -(void)showInfo;
262728@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}
1112@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.1415 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];
2122}
2324 - (void)didReceiveMemoryWarning
25{
26 [super didReceiveMemoryWarning];
27// Dispose of any resources that can be recreated.28}
2930@end
呵呵,ok,这样就可以直接使用静态库了,超级简单有木有。。。。
原文:http://www.cnblogs.com/guchengfengyun/p/4064390.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!