我被要求將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.0功能(媒體選取器)添加到應用程序。在2.2.1設備上運行帶有3.0功能的iPhone應用程序
但是,該應用程序必須繼續在2.2.1設備上運行。 (隨着功能禁用)
我怎麼能編譯此,在這樣一種方式,它運行在2.2.1,沒有得到一個編譯器錯誤,對於包括3.0功能?
按在MailComposer例子說明,我已經把我的目標設定到2.2.1和我的基地SDK 3.1.2。
我看弱聯,但這顯然只是爲了連接步驟,並且確實一無所知編譯器錯誤。
要解決的編譯器錯誤,只是聲明瞭C函數爲extern(Objective-C的功能將生成一個警告,但沒有編譯器錯誤)。鏈接器錯誤可以通過弱鏈接來解決,因爲你已經不適應了。
我通常做的就是複製,我需要用我只關心從3.0 SDK的方法到我的項目類的定義,那麼我調用這些方法,就好像什麼都沒有發生。唯一棘手的部分是實例化,爲此使用:
MyCopiedClass object = [[NSClassFromString(@"MyCopiedClass") alloc] init];
好的,但我可以聲明一種類型嗎?就像我需要使用指向MPMediaPickerController的指針一樣? – 2010-01-13 23:00:43
對於使用的任何類,您需要執行前向聲明。在'MPMediaPickerController'的情況下,你可以做'@class MPMediaPickerController;'。 – Mike 2010-01-13 23:05:38