• 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,这样就可以直接使用静态库了,超级简单有木有。。。。

  • 相关阅读:
    MySQL存储写入性能严重抖动分析
    关于MySQL的commit非规律性失败案例的深入分析
    MySQL存储写入速度慢分析
    MySQL缓存之Qcache与buffer pool对比
    SQL执行过程中的性能负载点
    关于MySQL用户会话及连接线程
    如何查询、修改参数状态值
    genymotion 前端调试
    name是个特殊的变量名吗
    background-size 导致的背景不居中问题
  • 原文地址:https://www.cnblogs.com/guchengfengyun/p/4064390.html
Copyright © 2020-2023  润新知