Я не могу получить несколько байтов и поместить их в строку ... Я использую эту функцию для получения данных. Все работает хорошо, но я не могу использовать буфер типа string с функцией getBytes, так как это приведет к пустой строке, даже если данные не пусты.getBytes из NSData и поместить результат в строку
private func getTYPE() {
let x = NSMutableData(contentsOf: URL(fileURLWithPath: path))
let _mode_: [UInt8] = [0x66, 0x74, 0x79, 0x70]
let data = NSData(bytes: _mode_, length: _mode_.count)
let range = x?.range(of: data as Data, in: NSRange(location: 0, length: (x?.length)!))
// Problems here
var y: String = ""
x?.getBytes(&y, range: NSRange(location: (range?.location)! + (range?.length)!, length: 3))
Swift.print(y) // Print result
}
Он не бросает какой-либо исключения, но строка всегда пустой ... Та же функция работает хорошо, если я пытаюсь получить только Uint8 вместо строки:
// Working Context
var y: UInt8 = 0
x?.getBytes(&y, range: NSRange(location: (range?.location)! + (range?.length)!, length: 1))
Итак, как я могу прочитать несколько символов вместе?
Данные MutableCollection из байтов. вы можете использовать copyBytes и передать диапазон. –
'let x =" тестовая строка ".data (с использованием: .utf8)! var y: [UInt8] = [0,0,0] x.copyBytes (to: & y, from: 0 .. <3) y // [65, 32, 116] ' –