Я знаю, что вы уже получили ответ на свой вопрос, но я просто хочу объяснить, что (я думаю) не может быть тривиальным
Во-первых, у нас есть некоторые NSData
мы хотим преобразовать в NSString
, потому что никто не гарантирует данных является допустимым буфера UTF8, он возвращает дополнительный
var variable = NSString(data:data, encoding:NSUTF8StringEncoding)
Что означает variable: NSString?
Обычно NSString
соединяется с Свифта String
, но в данном случае мы используем NSString
конструктор - вы можете думать о нем как «Фонд» -like синтаксисом, который не был непосредственно импортируемого стриж (поскольку нет никакого моста для NSData
)
мы можем использовать путь 'Foundation' с 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, если он не может разобрать строку как целое число, так и float.Вот почему лучше использовать быструю родную 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. –