我正在 Xcode 中创建一个 Swift 应用程序,该应用程序向 BLE 适配器发送命令,以使与其连接的 LED 变为不同的颜色。
正如我从对 SO 上一篇文章的回复中确定的那样,我必须以数组中的十六进制整数形式发送命令。我正在使用以下代码来执行此操作:
let bytes : [UInt8] = [ 0x52, 0x13, 0x00, 0x56, 0xFF, 0x00, 0x00, 0x00, 0xAA ]
let data = NSData(bytes: bytes, length: bytes.count)
因此,这需要上面建议的 UInt8 表单。
但是,我试图在我的 Swift 应用程序上使用滑块作为颜色选择器,以便设置连接到 BLE 接收器的 LED 灯条的 R、G 和 B 颜色。为了做到这一点,我分别为 R、G 和 B 创建了三个滑块,将每个滑块的最小值设置为 0,最大值设置为 255(因为 255 转换为十六进制的 FF)。然后,我使用以下函数将它们转换为十六进制形式,以便我在上面的命令中实现。
func colorToHex(input: Int) -> UInt8 {
var st = NSString(format: "%2X", input)
return st
}
问题在于我必须再次返回 UInt8 值。由于 'st' 是一个 NSString,Xcode 会抛出一个错误 'NSString not convertible to UInt8'。
我对 Swift 很陌生。这里的问题是,我如何让函数返回一个 UInt8 值,我如何让它形成一个 UInt8 值?
任何帮助将不胜感激!