iOS開發之靜態庫 基本概念

2021-07-10 07:07:23 字數 1605 閱讀 1446

在正式的上**之前,先介紹一些從網上蒐集的靜態庫相關的基本概念,以加深對後面知識的理解

1. 庫

庫實際上是一種**共享的方式,主要用於**重用和原始碼隱藏,通常分為動態庫和靜態庫。

2. 區別

靜態庫:鏈結時完整的拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。

動態庫:鏈結時不複製,程式執行時由系統動態載入到記憶體,供程式呼叫,系統只載入一次,多個程式共用,節               省記憶體空間。

3.ios中靜態庫的形式

在ios中靜態庫以.a和.framework的形式存在,動態庫以.dylib和.framework的形式存在。

又堂而皇之的使用動態庫,這就造成了ios中系統級的.framework是動態庫,使用者級的.framework是靜態庫(無 可奈

何啊)。

4..a與.framework的區別

二者區別不大,.a是純二進位制檔案,.a檔案不能單獨使用,至少要有.h檔案配合,而.framework除了二進位制

檔案外,還包含一些資源檔案(標頭檔案,plist等),由於自身包含了標頭檔案,所以.framework可以單獨使用。

5.靜態庫使用的必要性

1> **的共享與重用

2> 程式模組化

3> 分享給別人**庫時**隱藏

4> 開發第三方sdk

6.對資源和ui介面xib或nib檔案的處理

.a和.framework兩種靜態庫,通常都是把需要用的到或者xib檔案存放在乙個bundle檔案中,而該

bundle檔案的名字和.a或.framework的名字相同。關於bundle檔案的製作方法,後面有專門介紹。

有個疑問:

.a檔案中無法存放或xib檔案,很容易理解,但是.framework從本質上說也是乙個bundle檔案,為什麼

不把或者xib檔案直接放在.framework中而單獨再建立個bundle檔案呢?

那是因為ios系統不會去掃瞄.framework下的等資源檔案,也不會在專案中顯示,也就是說即使放在 

.framework目錄下,系統根本就不會去掃瞄,因此也無法發現使用。

7.category的處理

category是專案開發中經常用到的,把category打包成靜態庫是沒有問題的,但是在使用這個靜態庫時, 調

用category中的方法時會發生找不到該方法的執行時錯誤(selector not recognized),解決的辦法是在使

用靜態庫的工程中配置other linker flags的值為 -objc  -all_load

iOS開發之靜態庫(一) 基本概念

在正式的上 之前,先介紹一些從網上蒐集的靜態庫相關的基本概念,以加深對後面知識的理解 1.庫 庫實際上是一種 共享的方式,主要用於 重用和原始碼隱藏,通常分為動態庫和靜態庫。2.區別 靜態庫 鏈結時完整的拷貝至可執行檔案中,被多次使用就有多份冗餘拷貝。動態庫 鏈結時不複製,程式執行時由系統動態載入到...

iOS開發之靜態庫

最近在與第三方支付平台對接的時候,接過來的文件demo裡含有.a靜態庫檔案,但是因為庫包出錯,需要修改,才發現.a靜態庫檔案不可修改,所以上網進行了了解學習。現在跟大家分享一下學習的心得。framework 檔案和.a 檔案都是庫檔案 那什麼是庫檔案 庫是程式 的集合,是共享程式 的一種方式 根據源...

靜態路由的基本概念

靜態路由指由使用者或網路管理員手工配置的路由資訊。靜態路由資訊在預設情況下是私有的,不會傳遞給其他的路由器。靜態路由一般適用於比較簡單的網路環境,在這樣的環境中,網路管理員易於清楚地了解網路的拓撲結構,便於設定正確的路由資訊。在乙個支援ddr dial on demand routing 的網路中,...