我目前正在尝试从UITextfield获取数据(HEX),我想将数据存储在UInt8中,我目前正在这样做。
let incomingdata = UInt8(textfield.text!)
这样做会返回nil。我这样做的目的是因为我从UITextField获取数据后,我会通过蓝牙发送UInt8格式的数据。有人可以建议我怎么做?谢谢
我更新了我的问题,简而言之,我在UITextField中输入了72AE,我得到了字符串格式的文本,但最后我想把它转换为UInt8,它是在0x72,0xAE
简而言之,我将HexString转换为UInt8
答案 0 :(得分:0)
您可以使用此代码将十六进制值转换为Int。
let hex2int = String(format:"%2X", hex)
非常简单。
答案 1 :(得分:0)
我可能会误解你的问题,但是如果你想将字符串转换为Int数组,那么你可以这样做。
let stringFromTextField = "anything"
// Convert stringFromTextField to NSString and then then convert it to NSData
// in encoding of your choosing
if let data = NSString(string: stringFromTextField).dataUsingEncoding(NSUTF8StringEncoding) where data.length > 1 {
// Create buffer
var buffer: Int = 0
let bufferSize = 1
let adjustedDataLenght = data.length / bufferSize
var yourInt = [Int]()
// Loop over data and get bytes
for i in 0..<adjustedDataLenght {
data.getBytes(&buffer, range: NSRange(location: i, length: bufferSize))
yourInt.append(buffer)
}
// Here are your ints
print(yourInt)
}
在操场上工作。希望它有所帮助。