ios - 如何将 CoreNFC 与 ApplicationDelegate 一起用于 Qt?

标签 ios objective-c qt nfc

我不是 Objective-C 的人。但我正试图让 CoreNFC 与 Qt 一起工作。到目前为止,我可以打开 session UI,扫描标签,但出现堆栈错误。

这是我所做的。

  1. 处理应用授权等事宜。
  2. 对于我的 QIOSApplication Delegate,它是

    @interface QIOSApplicationDelegate : UIResponder

改为:

@interface QIOSApplicationDelegate : UIResponder <UIApplicationDelegate, NFCNDEFReaderSessionDelegate>
  1. 添加到代理:

    @property (strong, nonatomic) 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];
}

五个。将以下功能添加到应用委托(delegate):

- (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);
}
  1. 启动应用程序,向手机出示标签(位于顶部)。手机会发出声音和振动指示它已读取标签。

七。将手机和标签分开后, 出现“堆栈错误”。永远不会调用错误函数。

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}}}

最佳答案

我遇到了同样的问题。

收到数据后,我只是使 session 无效。

关于ios - 如何将 CoreNFC 与 ApplicationDelegate 一起用于 Qt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52665743/

相关文章:

iOS:为什么我的 View 需要 x 值约束?

ios - [NSManagedObject setSwitchState :]: unrecognized selector sent in Objective-C

iphone - 我可以将 NSURLCredentialStorage 与数据保护结合使用吗?

ios - @strongify 的原因是什么

iphone - 从 UITableViewCell 转到另一个 ViewController

qt - 如何在子管理调整大小时强制布局更新/调整大小?

c++ - 如何在 Qt 4.8 Issues Tab 中显示 C++ 的所有警告?

iphone - 如何检查 WebView URL 是否是本地文件?

ios - 在 iOS 8 中,Tabbar 的 View Controller 在更改方向时重新加载

c++ - 与第 3 方库链接导致 openssl 中出现段错误