iOS 元件組件-建立靜態庫static library

來源:互聯網
上載者:User

標籤:

概述

在項目開發的過程中,經常使用靜態庫檔案。例如兩個公司之間業務交流,不可能把原始碼都發送給另一個公司,這時候將私密內容打包成靜態庫,別人只能調用介面,而不能知道其中實現的細節。

庫是一些沒有main函數的程式碼集合。除了靜態庫,還有動態連結程式庫,他們之間的區別是:靜態庫可以編譯到我們的執行代碼中,應用程式可以在沒有靜態庫的環境中運行;動態庫不能編譯到我們的執行代碼中,應用程式必須在有連結庫檔案的環境下運行。另外,動態庫在AppStore裡,很有可能被拒絕,上架不了。

因而,一般情況下,我們都是使用.a 靜態庫。

建立靜態庫

1、建立Static Library,建立->Project,選擇Static Library,

 2、點擊Next,將Static Library項目名稱命名為TimeDate,用於處理時間和日期的靜態庫工程

建立了靜態庫Static Library項目之後,Xcode自動為我們建立了TimeDate.h/.m檔案,如所示

 3、添加功能代碼

TimeDate.h

#import <Foundation/Foundation.h>@interface TimeDate : NSObject-(NSString *)changeToStandardTime:(NSTimeInterval)timeInterval;@end

TimeDate.m

#import "TimeDate.h"@implementation TimeDate- (NSString *)changeToStandardTime:(NSTimeInterval)timeInterval{    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];    [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];    NSString *time = [dateFormatter stringFromDate:[NSDate dateWithTimeIntervalSince1970:timeInterval]];    return time;}@end

4、編譯項目,分別為模擬器編譯和真機編譯,產生對應的靜態庫.a檔案

    

 libTimeDate.a->Show in Finder 查看產生的靜態.a檔案

   

 5、把所有的.h標頭檔都公開打包出來

在檔案夾裡,可以看到libTimeDate.a 和 TimeDate.h

靜態庫已經打包完畢

調用實現

建立一個工程,分別把libTimeDate.a 和 TimeDate.h拉到工程裡

調用很簡單

1.引用:#import "TimeDate.h"

2.直接調用

-(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{  NSLog(@"changeToStandardTime---%@",[[[TimeDate alloc]init] changeToStandardTime:1444793824]);}
其它資源打包

在某一些靜態庫裡,會使用到圖片和xib檔案等,這些也需要我們一起打包的。

1、打包圖片

建立一個檔案夾,命名和靜態庫一致,如TimeDate.bundle ,顯示包內容,將圖片拉進去即可。

在靜態庫裡使用圖片,就要注意路徑了,一般使用如下:

+(UIImage *)loadImage{    NSString *image=[[NSBundle mainBundle] pathForResource:@"ceshi.png" ofType:nil inDirectory:@"TimeDate.bundle"];    return [UIImage imageWithContentsOfFile:image];}

當然,這一部分是可以寫成一個宏的

 

最後

我們給對方的,包含

 

 

iOS 元件組件-建立靜態庫static library

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.