1

我正在尝试使用 iOS 13 中的核心 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 上擦除标签?

4

0 回答 0