2017-02-04 42 views
8

一些示例:在swift 2中,我們有NSData和NSUrl;在swift 3我們有數據和URL。如果你點擊數據,它可以從iOS 10或更高版本中獲得。我需要澄清swift 3兼容性和API可用性之間的區別

請有人可以解釋以下內容:如果蘋果文檔聲稱只有iOS 10和更高版本才提供某些內容,那麼這是否意味着我只能將它用於目標爲iOS 10或更高版本的應用程序?

我讀過Swift 3與iOS 8兼容,但這些變化(例如NSData到Data)是從Swift 2移動到3的一部分。所以如果Data僅在iOS 10和更高版本中可用, Swift 3與iOS 8兼容意味着什麼?

我想,實質上,我對API可用性和Swift 3兼容性的區別感到困惑。

非常感謝您的幫助。

回答

3

如果蘋果文檔聲稱只能從iOS 10或更高版本獲得某些內容,是否意味着我只能將它用於目標爲iOS 10或更高版本的應用程序?

不可以。Apple文檔的可用性部分可能會顯示兩種不同類型的信息 - SDK可用性和目標操作系統可用性。

Data的情況下,Data標準庫代碼是用於所有iOS的8和更高版本兼容,但標準庫包括Data(SWIFT 3標準庫)被包括僅在IOS SDK 10或更高版本,可用性部分蘋果公司的文檔代表了這個含義中的「可用性」。

This thread in the Apple's dev forums會有一些幫助。通常,您可以依賴Xcode/Swift的可用性檢查功能。當您將項目的最低目標標記爲iOS 8.0並且沒有關於可用性的警告時,項目中使用的所有功能都應在iOS 8.0設備上運行。

您可以發送bug report作爲文檔錯誤。

+0

謝謝。好的,所以「iOS 10及更高版本中可用」這個短語有點含糊不清;它可以指i)僅適用於安裝了iOS 10的手機,或者2)僅在使用iOS 10 SDK時可用。我從這個討論中脫離出來:'依靠Xcode的可用性檢查功能'。 –