Я пытаюсь стереть все содержимое тега NFC с помощью Core NFC в iOS 13. Если я посмотрю документацию по написанию тега, я получу следующую функцию:
- (void)writeNDEF:(NFCNDEFMessage *)ndefMessage completionHandler:(void (^)(NSError *))completionHandler;
Я обычносоздать NFCNDEFMessage, используя следующую функцию:
- (instancetype)initWithNDEFRecords:(NSArray<NFCNDEFPayload *> *)records;
InitwithNDEFRecords заявляет, что записи:
An array of payload objects for the message. To create an empty message, pass in an empty array.
Поэтому моя текущая функция:
//Create an array containing the records we will write.
NSMutableArray* writeArray = [[NSMutableArray alloc] init];
[tag writeNDEF:[[NFCNDEFMessage alloc] initWithNDEFRecords:writeArray] completionHandler:^(NSError* error) {}];
Я считаю, чтокод для передачи в пустой массив, и он не будет создавать пустое сообщение на теге, чтобы стереть его. Я получаю сообщение об ошибке внутри блока завершения, которое при записи в журнал выглядит следующим образом:
Error Domain=NFCError Code=401 "Stack Error" UserInfo={NSLocalizedDescription=Stack Error, NSUnderlyingError=0x280fecc60 {Error Domain=nfcd Code=15 "Stack Error" UserInfo={NSLocalizedDescription=Stack Error}}}
Если я НЕ передаю пустой массив и фактически имею несколько записей для записи, он записывает в тег правильно.
Я вижу, что приложения в App Store поддерживают удаление тегов, таких как "Инструменты NFC". Я обратился к разработчику, но он не ответил на мои письма о том, как он это сделал.
Как я могу стереть тег на iOS 13?