2012-12-10 110 views
1

我在一個非常大的iOS項目工作,它有那麼多的類和資源,它需要很長的時間指數和編譯它們庫。隨着它越來越多,我需要爲此做點什麼,因爲我花了太多時間等待IDE讓我工作。創建需要一個公共庫

我的第一個想法是將所有的圖像打包到一個自定義的包中,這樣IDE就會將它看作一個單獨的文件,並且索引和複製它會更快,但是我已經看到包只不過是一個簡單的有擴展名的文件夾,所以我想這個性能仍然會很慢。然後我讀到,如果我使用「藍色文件夾」而不是「黃色組」爲我的圖像,Xcode不會索引它們。但是現在這種方式並不容易,因爲我應該替換尋找圖像的函數,以便在該文件夾中查找它們(絕對路徑?)

所以我的最後一種方法是節省編譯時間和編制索引的時間。我想在多個庫中模塊化我的代碼,因此不需要再次編譯它,這樣Xcode就不需要對源文件編制索引。

我遵循了一些教程,現在我知道如何創建一個靜態庫並將頭文件包含在另一個項目中。但我目前的問題如下。

我的應用程序有一些「獨立的」模塊,所以我想創建爲每一個靜態庫(也許我會生成每一個圖像束太...)。但是所有這些模塊都使用了一個公用的內核,我也希望將它保存在靜態庫中。所以,如果我這樣做,我將不得不在每個模塊庫中包含主核心庫,並且恐怕這不是最優化的方式,因爲核心的二進制代碼將會出現幾次,對?

我想正確的解決辦法是將產生的核心和靜態的各模塊動態庫,但我怎麼也找不到生成動態的......而且,我不相信這會成爲解決方案。

所以我問你:我有什麼選擇?編譯核心幾次是我擁有的最佳方法? 非常感謝您的幫助!

回答

1

動態鏈接不支持IOS,所以這不是一個選項。雖然靜態庫被添加到其他庫中,但它不會嵌入到其他靜態庫中,當您執行構建時可以看到這一點,其他庫應該在項目文件夾內顯示爲單獨的庫,因此每個靜態庫/項目只會在應用程序構建中包含一次。

到底......我不知道這會爲你節省大量的時間你,如果你使用的是靜態庫在同一個工作區期待。我在一些項目中使用靜態庫,如果我在應用程序上執行了Clean,然後構建,靜態庫也會重新構建。

+0

好的,我想我沒有正確表達。我的意思是我創建一個庫libA。然後我創建一個庫libB,它在內部使用libA。編譯libB時,它將包含libA。 那麼我創建libC,它也使用libA。和libD,libF,... 我的項目使用那些libB,libC,libD,但是不直接使用libA。我的問題是,libA是巨大的(10MB),所有其他的都是(實際上,它們來源很少)。 –