我正在尝试使用iOS 13中的Core NFC擦除NFC标签上的所有内容。如果我查看编写标签的文档,则会得到以下功能:
- (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上擦除标签?