如何避免NFCError Code = 203"由于系统资源不可用,会话无效"?

时间:2018-01-09 16:49:04

标签: core-nfc

当我尝试启动CoreNFC会话时,它首先工作但稍后,我收到一条错误消息:

  

错误域= NFCError代码= 203"由于系统资源不可用,会话无效"

在重新启动iPhone之前,再也无法读取NFC标签了。

为什么会出现此错误?我该怎么做才能避免它?

2 个答案:

答案 0 :(得分:1)

尝试阅读NDEF后尝试添加此行:

[session invalidateSession];

或在Swift中:

session.invalidate()

在鲍里斯的回答中提到了这个提示: iOS 11 Core NFC - any sample code?

显然,如果不使会话对象无效,它并不总是释放资源。我好几个月都没有问题,然后几天前他突然开始这么做了。这似乎已经解决了。

告诉我们它是否适合您;拥有多个数据点会很好。

答案 1 :(得分:0)

我找到了问题的解决方案:

发生了什么事?当我通过将iPhone颠倒过来启动NFC阅读器会话时,当应用程序处于非活动状态时,也会传递UIDeviceOrientationDidChangeNotification。发生这种情况时,iOS无法启动NFC读取会话,它可能会记录问题,甚至在iPhone重新启动之前都不会尝试。

解决方案:在开始NFC阅读器会话之前,我确保应用程序处于活动状态:

[[UIApplication sharedApplication] applicationState] == UIApplicationStateActive