我不是Objective-C人员。但是我正在尝试让CoreNFC与Qt一起使用。到目前为止,我可以进入会话UI,扫描标签,但是出现堆栈错误。
这就是我所做的。
对于我的QIOSApplication Delegate,是
@interface QIOSApplicationDelegate:UIResponder
更改为:
@interface QIOSApplicationDelegate : UIResponder <UIApplicationDelegate, NFCNDEFReaderSessionDelegate>
添加到代理:
@属性(强原子)NFCNDEFReaderSession * nfcSession;
四个。就像测试一样,在didFinishLaunchingWithOptions中添加:
if (![NFCNDEFReaderSession readingAvailable]) {
qDebug() << "NFC not available";
} else {
qDebug() << "NFC available";
_nfcSession = [[NFCNDEFReaderSession alloc] initWithDelegate:self queue:nil invalidateAfterFirstRead:NO];
[_nfcSession beginSession];
}
五个。将以下功能添加到应用程序委托中:
- (void)readerSession:(NFCNDEFReaderSession *)session didDetectNDEFs:( NSArray<NFCNDEFMessage *> *)messages {
qDebug() << "NFCNDEFReaderSession didDetectNDEFs" << messages;
NSLog(@"NFCNDEFReaderSession didDetectNDEFs: %@",messages);
for (NFCNDEFMessage *message in messages) {
qDebug() << message;
for (NFCNDEFPayload *payload in message.records) {
qDebug() << payload;
}
}
}
- (void)readerSession:(NFCNDEFReaderSession *)session
didInvalidateWithError:( NSError *)error {
NSLog(@"Something went wrong: %@",error);
}
七。分开电话和标签后,出现“堆栈错误” 。错误函数永远不会被调用。
2018-10-04 17:36:09.291926-0400 testnfc[532:51484] [CoreNFC] 00000002 838b2f80 -[NFCNDEFReaderSession _connectTag:error:]:418 Error Domain=NFCError Code=100 "Stack Error" UserInfo={NSLocalizedDescription=Stack Error, NSUnderlyingError=0x2818a2970 {Error Domain=nfcd Code=15 "Stack Error" UserInfo={NSLocalizedDescription=Stack Error}}}
答案 0 :(得分:0)
我有同样的问题。
接收数据后,我只是invalidate
会话。