Ios 核心NFC有效负载错误

Ios 核心NFC有效负载错误,ios,swift,xcode,nfc,core-nfc,Ios,Swift,Xcode,Nfc,Core Nfc,我想使用iOS 11中引入的核心NFC框架从我的NFC标签(NXP NTAG213)扫描NDEF数据 我成功读取了标签中的有效负载: TNF=1, Payload Type=<54>, Payload ID=<>, Payload=<026a61e3 8193e382 93e381ab e381a1e3 81af0a> 但出现了错误 以下是我的源代码: import UIKit import CoreNFC class ViewController: UI

我想使用iOS 11中引入的核心NFC框架从我的NFC标签(NXP NTAG213)扫描NDEF数据

我成功读取了标签中的有效负载:

TNF=1, Payload Type=<54>, Payload ID=<>, Payload=<026a61e3 8193e382 93e381ab e381a1e3 81af0a>
但出现了错误

以下是我的源代码:

import UIKit
import CoreNFC

class ViewController: UIViewController, NFCNDEFReaderSessionDelegate{

var payloadData = "HaveNoData"

func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
    print("エラーは発生しませんでした")
    for message in messages{
        for payload in message.records {
            print (payload)
            payloadData = String(describing: payload.payload)
        }
    }
    print(payloadData)
}

func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
    print("Error: \(error.localizedDescription)")
}

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.
    let session:NFCNDEFReaderSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)

    session.begin()

}

@IBAction func launch(_ sender: Any) {
    let session:NFCNDEFReaderSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: true)
    session.begin()
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}


}

我不确定您是否可以在
payload.payload
上使用
描述:
。但是我相信来自NSData的老式
String
会起作用。(不是每日Swift编码员,因此不确定这些天Swift 3/4是如何处理的)

在Objective-C中,我可以使用:

NSString *dataString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
或者在您的示例中,为日文字符串使用
NSUTF8StringEncoding


这是我做的一个示例项目(在Objective-C中)。

我不确定您是否可以在
有效负载上使用
描述:
。这里的有效负载
。但是我相信来自NSData
的老式
String
会起作用。(不是每日Swift编码员,因此不确定这些天Swift 3/4是如何处理的)

在Objective-C中,我可以使用:

NSString *dataString = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
或者在您的示例中,为日文字符串使用
NSUTF8StringEncoding


这是我做的一个示例项目(在Objective-C中)。

CoreNFC不支持解析复杂的NFC NDEF消息负载。我创建了一个开源解析器来解析负载。检查我的教程

CoreNFC不支持解析复杂的NFC NDEF消息负载。我创建了一个开源解析器来解析负载。查看我的教程