Я пытаюсь прочитать UID для тега mifare.
Глядя на примеры, я часто вижу следующий метод:
func tagReaderSession(_ session: NFCTagReaderSession, didDetect tags: [NFCTag]) {
if case let NFCTag.miFare(tag) = tags.first! {
print(tag.identifier as NSData)
}
}
Однако, когда помещаю это в мой проектметод не вызывается.
Я также заметил, что xCode предупреждает, что он почти совпадает с дополнительным протоколом, который такой же, за исключением того, что он использует NFCNDEFTag вместо NFCTag ..
Когда я пытаюсь обновить его, этот метод вызывается. Но потом у меня возникают проблемы при попытке определить тег как mifare внутри этого метода. Я получаю сообщение об ошибке «Шаблон не может соответствовать значениям типа« NFCNDEFTag ».
Код ниже:
@available(iOS 13.0, *)
func readerSession(_ session: NFCNDEFReaderSession, didDetect tags: [NFCNDEFTag]) {
print("in did detect tags")
let tag = tags.first!
session.connect(to: tag) { (error: Error?) in
session.connect(to: tag) { (error: Error?) in
if case let .mifare(mifareTag) = tag {
// can access tag identifier here?
}
}
}
}