我是一名新的iOS開發人員。我有一個非常基本的疑問。我在很多地方閱讀過,我們需要將我們的.h文件和.a文件一起發送給靜態庫。靜態庫中.h文件的意義是什麼?
而.a文件是編譯庫,具有完整的實現,開發人員無法自己閱讀,只是爲了實現安全的實現代碼。
而我們需要.h文件來知道哪些公共功能可用。但爲什麼Xcode不能解碼.a文件並直接使用它而不是運送另一個.h文件。 Xcode不需要向開發人員展示.a實現,而是可以向開發人員提供公共可用的方法。
我沒有看到蘋果沒有這樣做的任何邏輯原因。我相信,運送.h文件絕對有很強的理由。我想知道可能是什麼原因?
感謝您的詳細回覆。但仍然是.a代碼是架構特定的,爲什麼編輯器不能讀取.a文件,並向我們展示可用的公共函數,因爲在執行期間,可執行文件能夠鏈接靜態庫中所需的函數。所以爲什麼編輯不能做到這一點。 這只是爲了我的邏輯理解。 – 2012-01-17 14:31:52
從'讀取函數的名字非常簡單。o'文件(所以'.a'文件也很簡單),但是:你不能很容易地知道函數有多少種類型的參數和返回值! ABI(應用程序二進制接口)定義瞭如何處理參數,通常它們只被一個接一個地壓入堆棧。 '.o'文件中的機器代碼然後從那裏加載數據。但總是對此進行逆向工程並不容易。 – 2012-01-17 14:35:53
真正有用.. :) – turtle 2013-08-01 05:15:28