Как преобразовать массив байтов в шестнадцатеричную строку в Swift

Я нашел, как преобразовать шестнадцатеричную строку в байты [UInt8], но я не нашел, как преобразовать байты [UInt8] в шестнадцатеричную строку в Swift

этот hexstring преобразуется в string код:

 static func bytesConvertToHexstring(byte : [UInt8]) -> String { var string = "" for val in byte { //getBytes(&byte, range: NSMakeRange(i, 1)) string = string + String(format: "%02X", val) } return string } 

похожее на этот результат:

 "F063C52A6FF7C8904D3F6E379EB85714ECA9C1CB1E8DFD6CA5D3B4A991269D60F607C565C327BD0ECC0985F74E5007E0D276499E1ADB4E0C92D8BDBB46E57705B2D5390FF5CBD4ED1B850C537301CA7E" 

UInt8 : [0, 11, 8, 15, 6, 6, 5, 8, 8, 4, 14, 14, 0, 0, 9, 12, 6, 4, 10, 6, 4, 8, 6, 2, 14, 2, 6, 13, 3, 3, 12, 4, 3, 12, 8, 13, 14, 4, 10, 1, 12, 15, 4, 0, 14, 14, 0, 8, 8, 14, 6, 15, 2, 2, 9, 15, 13, 6, 2, 6, 8, 15, 4, 2, 12, 1, 0, 13, 13, 4, 6, 0, 9, 6, 8, 2, 7, 0, 6, 1, 3, 3, 9, 15, 5, 7, 12, 8, 7, 5, 13, 14, 15, 6, 7, 6, 12, 6, 7, 7, 11, 9, 6, 0, 14, 5, 6, 14, 1, 5, 13, 10, 12, 13, 14, 2, 13, 14, 4, 7, 13, 0, 3, 10, 6, 11, 9, 12, 7, 11, 5, 3, 5, 11, 4, 9, 6, 10, 14, 0, 11, 7, 15, 9, 3, 14, 5, 1, 10, 14, 5, 6, 12, 4, 12, 14, 4, 3, 9, 8, 0]

Xcode 9 • Swift 4

 extension String { var hexaBytes: [UInt8] { var position = startIndex return (0.. 

 "0f00ff".hexaBytes // [15, 0, 255] "0f00ff".hexaData // 3 bytes "0f00ff".hexaData as NSData // <0f00ff> 

Xcode 8.3.1 • Swift 3.1

 let byteArray:[UInt8] = [0, 11, 8, 15, 6, 6, 5, 8, 8, 4, 14, 14, 0, 0, 9, 12, 6, 4, 10, 6, 4, 8, 6, 2, 14, 2, 6, 13, 3, 3, 12, 4, 3, 12, 8, 13, 14, 4, 10, 1, 12, 15, 4, 0, 14, 14, 0, 8, 8, 14, 6, 15, 2, 2, 9, 15, 13, 6, 2, 6, 8, 15, 4, 2, 12, 1, 0, 13, 13, 4, 6, 0, 9, 6, 8, 2, 7, 0, 6, 1, 3, 3, 9, 15, 5, 7, 12, 8, 7, 5, 13, 14, 15, 6, 7, 6, 12, 6, 7, 7, 11, 9, 6, 0, 14, 5, 6, 14, 1, 5, 13, 10, 12, 13, 14, 2, 13, 14, 4, 7, 13, 0, 3, 10, 6, 11, 9, 12, 7, 11, 5, 3, 5, 11, 4, 9, 6, 10, 14, 0, 11, 7, 15, 9, 3, 14, 5, 1, 10, 14, 5, 6, 12, 4, 12, 14, 4, 3, 9, 8, 0] let hexaString = byteArray.map{String(format: "%02X", $0)}.joined() print(hexaString) // "000B080F0606050808040E0E0000090C06040A06040806020E02060D03030C04030C080D0E040A010C0F04000E0E0008080E060F0202090F0D060206080F04020C01000D0D04060009060802070006010303090F05070C0807050D0E0F0607060C0607070B0906000E05060E01050D0A0C0D0E020D0E04070D00030A060B090C070B0503050B0409060A0E000B070F09030E05010A0E05060C040C0E0403090800\n" 

как метод:

 func bytesToHexa(_ bytes: [UInt8]) -> String { return bytes.map{ String(format: "%02X", $0) }.joined() } let hexaString = bytesToHexa(byteArray) 

Чтобы преобразовать из строки hexa обратно в байты:

 func hexaToBytes(_ hexa: String) -> [UInt8] { var position = hexa.startIndex return (0.. 

или как расширение вычисленного значения String:

 extension String { var hexaBytes: [UInt8] { var position = startIndex return (0.. 
  • Почему дополнительная константа автоматически не имеет значения по умолчанию nil
  • Проверка того, является ли объект заданным типом в Swift
  • Преобразование типов при использовании протокола в Swift
  • Сохранение значений в завершенииHandlers - Swift
  • Меню боковой панели слайдов IOS 8 Swift
  • Быстрое изображение асинхронной загрузки
  • Какова цель willSet и didSet в Swift?
  • Определение, если словарь Swift содержит ключ и получает какие-либо его значения
  • Ошибка компилятора: метод с селектором Objective-C конфликтует с предыдущим объявлением с тем же селектором Objective-C
  • Что такое Swift-эквивалент ответаSoSelector?
  • == Перегрузка для настраиваемого classа не всегда называется
  • Давайте будем гением компьютера.