2017-01-29 66 views
3

我不明白swift 3數據對象和以前的NSData之間的區別。Swift 3數據和NSData之間的區別

蘋果爲什麼做了這個改變?

+1

閱讀[SE-0069:可變性和基礎值類型](https://github.com/apple/swift-evolution/blob/master/proposals/0069-swift-mutability-for-foundation.md ) – Hamish

+0

來自Apple - 將Swift覆蓋到Foundation框架提供了Data結構,該結構橋接到NSData類及其可變子類NSMutableData。 Data值類型提供了與NSData引用類型相同的功能,並且兩者可以在與Objective-C API交互的Swift代碼中互換使用。這種行爲類似於Swift將標準字符串,數字和集合類型橋接到其相應的Foundation類。 – Magnas

+0

[此](https://www.quora.com/What-is-difference-between-NSData-and-Data-in-Swift)可能對您的答案有用。 –

回答

2

Swift Migration Guide提供有關DataNSData之間的差異的信息。

兩者之間的主要變化只是名稱。但是有一些方法是不同的。詳細信息請參閱上面的鏈接。

回答「爲什麼」:Swift 2到Swift 3變化的休數量有幾個原因。正如你可以讀here其中之一是讓Foundation API的名字感覺更「Swifty」。

+6

有一個相當大的變化。 'Data'是Swift原生類型,它是一個結構體,而'NSData'是一個對象。使用'Data'可以讓我們使用一種類型,而不是將「NSData」用於不可變數據,而將「NSMutableData」用於可變數據。 – Sulthan

相關問題