я получаю массив с байтами:Преобразовать байты в строку не работает
var requestPtr = [3, 64, 0, 73, 0, 110, 0, 116, 0, 101, 0, 114, 0, 110, 0, 97, 0, 108, 0, 32, 0, 70, 0, 108, 0, 97, 0, 115, 0, 104, 0, 32, 0, 32, 0, 47, 0, 48, 0, 120, 0, 48, 0, 56, 0, 48, 0, 48, 0, 48, 0, 48, 0, 48, 0, 48, 0, 47, 0, 48, 0, 52, 0, 42, 0, 48, 0, 49, 0, 54, 0, 75, 0, 103, 0, 44, 0, 48, 0, 49, 0, 42, 0, 48, 0, 54, 0, 52, 0, 75, 0, 103, 0, 44, 0, 48, 0, 55, 0, 42, 0, 49, 0, 50, 0, 56, 0, 75, 0, 103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
Затем удалите первые байты и преобразовать массив в строку с этим кодом:
requestPtr.remove(at: 0)
let nsdata = NSData(bytes: requestPtr, length: requestPtr.count)
var str = String(data: nsdata as Data, encoding: String.Encoding.utf8)!
Если я бы напечатать в консоли он возвращается me string: Но я получаю странное кодирование при попытке скопировать сообщение.
И такие функции, как str.hasPrefix("@Internal Flash")
не работает.
И возвращается:
["\u{03}@\0I\0n\0t\0e\0r\0n\0a\0l\0 \0F\0l\0a\0s\0h\0 \0 \0", "\00\0x\00\08\00\00\00\00\00\00\0", "\00\04\0*\00\01\06\0K\0g\0,\00\01\0*\00\06\04\0K\0g\0,\00\07\0*\01\02\08\0K\0g\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"]
спасибо. Ваше решение работает. Не могли бы вы объяснить это, пожалуйста, – Arti
Я могу попробовать, но мне нужна ваша функция для получения байтов –
i получить байты с устройства usb: '' 'var request = IOUSBDevRequest (bmRequestType: 128, bRequest: 6, wValue: 0x300 | UInt16 (index) , wIndex: 0, wLength: 255, pData: & requestPtr, wLenDone: 255) kr = deviceInterface.DeviceRequest (deviceInterfacePtrPtr, & request) '' ' – Arti