iOS 13 Core NFC - Как написать пустое сообщение, чтобы стереть тег? - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь стереть все содержимое тега 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?

...