Я получаю эту ошибку при попытке прочитать тег NFC с помощью iPhone 7 Plus
2017-12-13 14:03:01.522137-0300 nfc[279:9534] [общее] подключение к службе с именем com.apple.nfcd.service.corenfc: Исключение при декодировании полученного сообщения, удаление входящего сообщения.
Исключение: Исключение при декодировании аргумента 0 (№2 вызова):
Исключение: decodeObjectForKey: класс «NFTechnologyEvent» не загружен или не существует
У меня установлены правильные права (Near Field Communication Tag Reading
) и Privacy - NFC Scan Usage Description
.
Чтобы воспроизвести его, просто запустите новый проект с одним представлением и замените значение по умолчанию ViewController
на это:
import UIKit
import CoreNFC
class ViewController: UIViewController, NFCNDEFReaderSessionDelegate {
// Reference the NFC session
private var nfcSession: NFCNDEFReaderSession!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.startScanning()
}
func startScanning() {
// Create the NFC Reader Session when the app starts
self.nfcSession = NFCNDEFReaderSession(delegate: self, queue: nil, invalidateAfterFirstRead: false)
// A custom description that helps users understand how they can use NFC reader mode in your app.
self.nfcSession?.alertMessage = "Macri Gato"
self.nfcSession?.begin()
}
// Called when the reader-session expired, you invalidated the dialog or accessed an invalidated session
public func readerSession(_ session: NFCNDEFReaderSession, didInvalidateWithError error: Error) {
print("NFC-Session invalidated: \(error.localizedDescription)")
print("==========================")
self.startScanning()
}
// Called when a new set of NDEF messages is found
public func readerSession(_ session: NFCNDEFReaderSession, didDetectNDEFs messages: [NFCNDEFMessage]) {
print("New NFC Messages (\(messages.count)) detected:")
print(messages)
}
}