当我尝试启动CoreNFC会话时,它首先工作但稍后,我收到一条错误消息:
错误域= NFCError代码= 203"由于系统资源不可用,会话无效"
在重新启动iPhone之前,再也无法读取NFC标签了。
为什么会出现此错误?我该怎么做才能避免它?
答案 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