2016-03-15 82 views
5

例如,假設我的iOS應用程序支持iOS 7.0,並且我想提醒一下。在iOS 7中,我會使用UIAlertView。在iOS 8/9中,這已被UIAlertController棄用。我必須檢查if currentVersion > iOS7,然後創建iOS8 +的兩個警報alertView和iOS8 +的alertController?或者可以在iOS7應用中使用UIAlertView,儘管它最終會在iOS9 +設備上運行?當我支持較低的iOS版本時,是否必須處理棄用?

我是否需要檢查當前的iOS版本是什麼,並實現多個對象(每個版本一個),在這樣的簡單事件中是這樣的

+0

您可能會覺得有用的市場份額統計信息:https://david-smith.org/iosversionstats/ –

+0

基本上,您需要考慮在您用於編譯項目的實際SDK中棄用的所有內容。 – holex

回答

1

棄用只是一個注意事項,可能會在將來的版本中刪除一個功能。儘管已棄用的類或方法仍然有效。

因此,您可以繼續使用UIAlertView,並面臨未來iOS版本發生故障的風險。它仍然可以在iOS 9上運行。不過,不能保證它會繼續在iOS 10上運行。

這裏最好的解決方案是check whether UIAlertController is available at runtime。如果是,請將該類用於提醒,否則請回到UIAlertView

您通常會做不是檢查iOS版本!最好檢查一個方法或類是否可用,除非在極少數情況下,Apple 明確指出告訴您檢查iOS版本:這種情況發生在被認爲是私有的方法被Apple公開時。

+0

經常棄用的功能將「工作」,但他們將有問題 –

+0

@BradThomas:你是指什麼樣的問題?在'UIAlertView'的情況下,這件事總是有問題,這就是爲什麼它通過'UIAlertController'成功的原因。除此之外,我不知道任何已經改變其行爲的廢棄的類或方法(當然,直到它被移除)。 – DarkDust

+0

在我們的項目中,使用UIAlertView升級到iOS8會導致出現片狀行爲。問題,如http://stackoverflow.com/questions/26228729/ios-8-uialertview-uialertcontroller-not-showing-text-or-buttons –

相關問題