0

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

let incomingdata = UInt8(textfield.text!)

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

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

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

4

2 回答 2

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

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

于 2016-03-18T18:48:11.353 回答
0

您可以使用此代码将十六进制值转换为 Int。

let hex2int = String(format:"%2X", hex)

很容易。

于 2016-03-18T18:08:28.263 回答