是有很多的來源解釋如何讓它在斯威夫特2,我認爲是一項基礎:如何在Swift 3中將數據轉換爲Int?
var value: Int = 0
let data: NSData = ...;
data.getBytes(&value, length: sizeof(Int))
然後我更新的語法/命名由於斯威夫特3:
var value: Int = 0
let data: NSData = ...;
data.copyBytes(to: &value, count: MemoryLayout<Int>.size)
儘管如此,它不起作用。編譯器不喜歡value
的類型,它說它應該是UInt8
。但我想要Int
。任何人都知道我怎麼能做到這一點?
注意,複製原始數據轉換成一個int是脆弱的。如果你嘗試在不同的「endian-ness」平臺之間交換數值,你會得到錯誤的結果。 iOS設備,Mac電腦和Windows電腦都是小端,但其他硬件則是大端。 –
看看[往返數據的Swift數字類型](http://stackoverflow.com/questions/38023838/round-trip-swift-number-types-to-from-data)。 –
謝謝你們。我會關注你的觀點。 –