Я создаю приложение Swift в Xcode, которое отправляет команду адаптеру BLE, чтобы подключенные к нему светодиоды изменились на другой цвет.
Как я установил из ответа на предыдущий пост на SO, мне нужно отправить команду в виде шестнадцатеричных целых чисел в массиве. Для этого я использую следующий код:
let bytes : [UInt8] = [ 0x52, 0x13, 0x00, 0x56, 0xFF, 0x00, 0x00, 0x00, 0xAA ]
let data = NSData(bytes: bytes, length: bytes.count)
Следовательно, для этого требуется форма UInt8, как было предложено выше.
Тем не менее, я пытаюсь использовать ползунки в качестве средств выбора цвета в своем приложении Swift, чтобы установить цвета R, G и B светодиодной ленты, подключенной к приемнику BLE. Для этого я создал три ползунка для 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, не конвертируемая в UInt8».
Я довольно новичок в Swift. Вопрос здесь в том, как заставить функцию возвращать значение UInt8, как мне заставить ее формировать значение UInt8?
Любая помощь будет принята с благодарностью!
255
, что вы хотите, это255
какUInt8
? или[70, 70]
([0x46, 0x46]
), который является CString-представлением"FF"
? - person rintaro   schedule 04.08.2015