2010-01-13 39 views
3

我被要求將3.0功能(媒體選取器)添加到應用程序。在2.2.1設備上運行帶有3.0功能的iPhone應用程序

但是,該應用程序必須繼續在2.2.1設備上運行。 (隨着功能禁用)

我怎麼能編譯此,在這樣一種方式,它運行在2.2.1,沒有得到一個編譯器錯誤,對於包括3.0功能?

按在MailComposer例子說明,我已經把我的目標設定到2.2.1和我的基地SDK 3.1.2。

我看弱聯,但這顯然只是爲了連接步驟,並且確實一無所知編譯器錯誤。

回答

3

要解決的編譯器錯誤,只是聲明瞭C函數爲extern(Objective-C的功能將生成一個警告,但沒有編譯器錯誤)。鏈接器錯誤可以通過弱鏈接來解決,因爲你已經不適應了。

+0

好的,但我可以聲明一種類型嗎?就像我需要使用指向MPMediaPickerController的指針一樣? – 2010-01-13 23:00:43

+0

對於使用的任何類,您需要執行前向聲明。在'MPMediaPickerController'的情況下,你可以做'@class MPMediaPickerController;'。 – Mike 2010-01-13 23:05:38

0

我通常做的就是複製,我需要用我只關心從3.0 SDK的方法到我的項目類的定義,那麼我調用這些方法,就好像什麼都沒有發生。唯一棘手的部分是實例化,爲此使用:

MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init]; 
相關問題