1

1,我想知道Xcode是否將所有的.m源代碼框架和.a編譯到我的應用中,例如,如果我導入UIKit框架並且只使用UIButton.h,那麼UIKit中的所有文件都會被編譯到我的應用中?靜態庫呢?所有框架和靜態庫文件編譯爲應用程序?

2,如果我在構建自己的靜態庫時導入了一些框架,框架文件是否會被編譯成.a?

在此先感謝。

回答

1

鏈接到標準框架(如UIKit)不會向您的二進制文件添加任何額外的數據。所有的標準框架都是操作系統的一部分,所以你只能參考這些框架。但是,必須包含任何自定義靜態庫,因爲該編譯代碼不是OS的一部分。

同樣的事情適用於您自己的圖書館。導入標準框架不應增加.a文件的大小。

+0

感謝您的回覆。因此,如果我在靜態庫中導入JSONkit.h/.m,它將被編譯爲.a文件,如果其他項目使用我的.a文件並且該項目也導入JSONkit,那麼可能存在一些問題(重複)?或者我們不能將第三方庫編譯到靜態庫中? – nova

+0

我還沒有遇到任何靜態庫和代碼之間重複的問題。我測試了它,它爲我工作。但是,我不明白爲什麼你會故意複製代碼,如果你不需要。 – danielM