2010-03-05 28 views
3

我正在處理爲iPhone OS 2.0設計的舊代碼。在這段代碼中,我有一些我們在iPhone 3.0上不推薦使用的說明。Iphone - 棄用的功能...他們會崩潰的iPhone?

我不願意改變的版本,因爲我有很多客戶,特別是在iPod Touch,仍在使用2.0。如果我更新說明,他們將無法繼續接收更新。

該應用程序已編譯爲2.0,並且始終如此。

我已經提交了新版本的蘋果,其中一些錯誤得到了糾正,並加入新的功能。我一直把這個應用程序發送給蘋果,他們從不抱怨。現在他們拒絕了這個應用程序,告訴我它在OS 3.1.3下崩潰了。

我跟着他們的指示,但我沒有看到任何崩潰,並使用了「過時」的功能完美的作品3.1.3代碼的一部分。

編譯項目3.1.3,我看到的Xcode黃色預警,告訴我,一個指令是不推薦3.1.3。

最大的問題是:此指令是否適用於3.1.3,我應該忽略此警告嗎? 這可能會導致iPhone崩潰嗎?

在我的印象中,iPhone OS所有新版本不斷回與舊版本兼容,所以,我認爲,編爲2.0的任何應用程序將在3.1.3和所有版本運行起來。

正如你所看到的,我已經在3.1.3上進行了測試,並且該應用程序完美工作。

這怎麼可能?有任何想法嗎?

感謝您的任何幫助。

回答

2

過時的電話都設計在了操作系統版本,他們被廢棄在工作,但停在一些(不確定)未來操作系統的工作。棄用是對開發者的警告:嘿,你應該改變你的代碼,這將在未來破裂。這是一種更新基於API的方式而不會破壞每個人。

總之,您現在可以使用這些調用,但是如果您決定放棄2.x可操作性,則需要編輯代碼。

+0

謝謝。是否可以設計一種測試來查看哪個版本正在運行,並在OS> =版本的情況下執行備用更新指令?如何做到這一點? – SpaceDog 2010-03-05 02:18:22

+2

'if([object respondsToSelector:@selector(newMethod)]){[object newMethod];} else {[object deprecatedMethod];}' – executor21 2010-03-05 02:45:41

+0

thanks !!!!!!!!!! – SpaceDog 2010-03-05 03:07:27