Swift 如何在iOS中获取NFC标签的icManufacturerCode

Swift 如何在iOS中获取NFC标签的icManufacturerCode,swift,ios11,core-nfc,Swift,Ios11,Core Nfc,使用CoreNFC,我想读取NFC标记的ICmenufacturerCode。根据苹果公司的文档,NFCISO15693Tag具有名为icManufacturerCode的属性,该属性可以理解为: func readerSession(_ session: NFCReaderSession, didDetect tags: [NFCTag]) { for tag in tags { let rfidTag = tag as! NFCISO15693Tag

使用CoreNFC,我想读取NFC标记的ICmenufacturerCode。根据苹果公司的文档,NFCISO15693Tag具有名为icManufacturerCode的属性,该属性可以理解为:

func readerSession(_ session: NFCReaderSession, didDetect tags: [NFCTag]) {
    for tag in tags {
        let rfidTag = tag as! NFCISO15693Tag
        print("- Is available: \(rfidTag.isAvailable)")
        print("- Type: \(rfidTag.type)")
        print("- IC Manufacturer Code: \(rfidTag.icManufacturerCode)")
        print("- IC Serial Number: \(rfidTag.icSerialNumber)")
        print("- Identifier: \(rfidTag.identifier)")
    }
}
但是我感到困惑了。。这是正确的标签阅读器会话,还是有其他方法读取iOS 11中NFC标签的制造商Id。 在iOS 11中,我们有
nfcndefredersession
。我使用
nfcndefredersessiondelegate
实现代码,但这些方法不提供任何读取icManufacturerCode的方法。用
nfcreadersessionelegate
方法替换该代码可以吗?? 那么
NFCReaderSession
将读取什么类型的标记


我知道这不是一个好问题,但我的困惑是奇怪的。谢谢。

iOS11的问题与苹果的类和协议签名有关(如果我不混淆的话,协议
NFCTag
已经成为iOS13的枚举)。但是,您可以使用此代码,它应该适用于iOS11的所有版本+

extension YourViewController: __NFCReaderSessionDelegate {

    func readerSessionDidBecomeActive(_ session: NFCReaderSession) {

    }

    func readerSession(_ session: NFCReaderSession, didInvalidateWithError error: Error) {

    }

    func readerSession(_ session: NFCReaderSession, didDetect tags: [__NFCTag]) {
        for tag in tags {
            let rfidTag = tag as! NFCISO15693Tag
            print("- Is available: \(rfidTag.isAvailable)")
            print("- Type: \(rfidTag.type)")
            print("- IC Manufacturer Code: \(rfidTag.icManufacturerCode)")
            print("- IC Serial Number: \(rfidTag.icSerialNumber)")
            print("- Identifier: \(rfidTag.identifier)")
        }
    }
}
有两种必需方法和一种可选方法(来自Obj-C),只需获取
icManufacturerCode

使用NFCNDEFReaderSession或NFCTagReaderSession的实例。只有 一次可以在系统中激活一个任何类型的读卡器会话


再次感谢。。还有一件事,你能告诉我rfidTag.icManufacturerCode返回的数据类型吗??字符串或数字,是十六进制还是十进制?在我的示例中,它是用于检测ISO7816、ISO15693、FeliCa和MIFARE标记的读卡器会话。如果要使用NDEF消息的检测NFC标记,请使用
NFCNDEFReaderSession
icManufacturerCode
is
var icManufacturerCode:Int{get}
Ok它的Int,正如我在Apple开发者网站上看到的那样。所以,我需要在我的项目中使用icManufacturerCode的反向十六进制。。为此,我应该将此int转换为十六进制,然后将其反转吗?
让hex=String(icManufacturerCode,基数:16)
-它是转换器如果我想使用NFCNDEFReaderSession,那么如何获取NFC标记的icManufacturerCode??