В моем приложении я читаю DG32, DG33, DG34, но поток такой же, вот пример того, как реализовать чтение файла DG11 с использованием NFCPassportReader
public class DataGroup {
public var elements: [String: String] = [:]
// Я добавил этот словарь получить значение по ключу из документации
class DG11: DataGroup {
private let tags = [0x5F0E, 0x5F0F, 0x5F10, 0x5F11, 0x5F2B]
required init(_ data: [UInt8]) throws {
try super.init(data)
datagroupType = .DG11
}
override func parse(_ data: [UInt8]) throws {
var tag = try getNextTag()
if tag != 0x5C { throw TagError.InvalidResponse }
_ = try getNextValue()
try tags.forEach { _ in
tag = try getNextTag()
parseBody(try getNextValue(), key: String(tag, radix: 16, uppercase: true))
}
print(elements)
}
private func parseBody(_ data: [UInt8], key: String) {
elements[key] = String(bytes: data[0...], encoding: .utf8)
}
}
Надеюсь, это поможет