Получение лишних значений при чтении двоичного файла iOS - PullRequest
0 голосов
/ 17 июня 2020

При чтении двоичных файлов прибывают лишние ненужные значения. Двоичный файл содержит список шестнадцатеричных значений. Я вижу в результатах некоторые дополнительные значения. изображение ниже - это результат работы консоли xcode. дополнительные значения находятся внутри синего прямоугольника.

Console screenshot

Исходные значения в файле:

Original values

Приведенный ниже код используется для чтения данных из файла:

var archieveData = Data()
let documents = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString

let filePath = documents.strings(byAppendingPaths: ["test.bin"])[0]
let data = FileManager.default.contents(atPath: filePath)
archieveData = try! NSKeyedArchiver.archivedData(withRootObject: data!, requiringSecureCoding: false)
let hexString = archieveData.hexDescription
let hexArr = hexString.components(withLength: 32)
   print("hex string \(hexArr)")

Расширения для преобразования в шестнадцатеричные значения и разделения массива на строку

extension Data {
    var hexDescription : String{
        return reduce("") {$0+String(format: "%02x", $1)}
    }
}

extension String {
    func components(withLength length: Int) -> [String] {
        return stride(from: 0, to: self.count, by: length).map {
            let start = self.index(self.startIndex, offsetBy: $0)
            let end = self.index(start, offsetBy: length, limitedBy: self.endIndex) ?? self.endIndex
            return String(self[start..<end])
        }
    }
}
...