2011-05-18 103 views

回答

1

所有第三方庫靜態鏈接到您的應用程序。理論上你可以懶加載只有蘋果自己的弱綁定庫。我不知道如何在iOS上控制此過程。這在Mac上當然是可能的。

+0

即使它們是第三方,您也可以將鏈接庫設置爲弱(目標>信息>常規),但我不知道這是否會產生任何效果。 – toupper 2011-05-24 11:59:04

+0

@ toupper據我所知。設置鏈接的唯一原因是確保您的應用能夠解析您的應用所在平臺的符號,而不是使用您的應用編譯到的平臺的符號。讓自己的圖書館薄弱沒有任何意義。 – bioffe 2011-05-24 15:13:10

0

當然,只要你不需要他們直接。

LazyLoad並不侷限於你的應用,例如,如果你有一個巨大的Opengl場景,你可以選擇不放置它的紋理,直到用戶真正點擊你需要的按鈕。

這樣做的缺點是,打開任何需要延遲加載的等待時間將會進一步向下移動(當用戶想玩時,他會有更長的加載時間)。

你可以嘗試的是啓動Thread來處理啓動時的加載,並且從你執行setBooleanLibXFinishedLoading的線程開始,你的應用程序只需要等待所有booelan被設置爲繼續。 這應該會減少用戶的明顯等待時間,同時優化實際花費的時間。

希望這有助於

傑森

+0

感謝您的回覆傑森。從你的評論這個問題來找我:我怎樣才能避免在一開始iOS加載libreries?我以後如何加載它們?非常感謝。 – toupper 2011-05-18 15:23:34

+0

好的,你可以添加一個你稱之爲加載庫的例子嗎? (對不起,我現在主要在android上工作,所以我在IOS上有點生疏) – 2011-05-18 15:55:38

+0

我的假設是iOS在啓動時加載了我們添加到項目中的框架和庫(例如libGoogleAnalytics.a)。我不在代碼中加載它們,只導入文件。也許有人嘗試過,可以在這方面糾正我。 – toupper 2011-05-19 11:39:18