看例子,我经常看到以下方法:
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?
}
}
}
}
我正在尝试读取mifare标签的UID。查看示例,我经常看到以下方法:func tagReaderSession(_ session:NFCTagReaderSession,didDetect标签:[NFCTag]){如果情况...
并且您应该遵循NFCTagReaderSessionDelegate https://developer.apple.com/documentation/corenfc/nfctagreadersessiondelegate?language=objc