我知道你已經得到了你的答案,但我只是想解釋一下(我認爲)可能不平凡
首先,我們有一些NSData
我們要轉換爲NSString
,因爲沒有人擔保的數據是一個有效的UTF8緩衝區,它返回一個可選
var variable = NSString(data:data, encoding:NSUTF8StringEncoding)
這意味着variable: NSString?
通常NSString
橋接到SWIFT的String
,但在這種情況下,我們使用一個NSString
構造 - 你可以考慮一下多爲「基礎」般的語法,並沒有直接導入到SWIFT(因爲是爲NSData
沒有橋)
我們仍然可以使用 '基金會' 的方式與NSString
if let unwrappedVariable = variable {
var number = unwrappedVariable.intValue
}
如果number
是Float
,但是字符串是一個整數的字符串表示
if let unwrappedVariable = variable {
var number: Float = Float(unwrappedVariable.intValue)
}
如果兩個number
及(表示)的字符串是浮筒:
if let unwrappedVariable = variable {
var number:Float = unwrappedVariable.floatValue
}
無論如何,有一個小問題,使用基礎。對於這些類型的轉換,它沒有可選值的概念(對於int,float)。如果它不能將字符串解析爲整數或浮點數,它將返回0。這就是爲什麼使用快速本機更好String
:
if let variable: String = NSString(data: data, encoding: NSUTF8StringEncoding) {
if let integer = variable.toInt() {
var integerNumber = integer
var floatNumber = Float(integer)
}
}
快速查看文檔如何? https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSString_Class/#//apple_ref/occ/instp/NSString/intValue。 – 2014-10-30 20:20:50