从UITextField(HEX)数据获取输入并通过蓝牙LE发送出去

时间:2016-03-18 16:42:52

标签: ios swift bluetooth uint8t

我目前正在尝试从UITextfield获取数据(HEX),我想将数据存储在UInt8中,我目前正在这样做。

let incomingdata = UInt8(textfield.text!)

这样做会返回nil。我这样做的目的是因为我从UITextField获取数据后,我会通过蓝牙发送UInt8格式的数据。有人可以建议我怎么做?谢谢

我更新了我的问题,简而言之,我在UITextField中输入了72AE,我得到了字符串格式的文本,但最后我想把它转换为UInt8,它是在0x72,0xAE

简而言之,我将HexString转换为UInt8

2 个答案:

答案 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)
}

在操场上工作。希望它有所帮助。