При чтении двоичных файлов прибывают лишние ненужные значения. Двоичный файл содержит список шестнадцатеричных значений. Я вижу в результатах некоторые дополнительные значения. изображение ниже - это результат работы консоли xcode. дополнительные значения находятся внутри синего прямоугольника.
Исходные значения в файле:
Приведенный ниже код используется для чтения данных из файла:
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])
}
}
}