Wie liest man mehrere Tags in einer iOS-Sitzung?
Halten Sie die Sitzung am Leben und lassen Sie sie nach jedem Tag erneut suchen. Eine NDEF-Sitzung, die mit invalidateAfterFirstRead auf falsch angelegt wurde, liest Tag um Tag, bis sie abläuft oder abgebrochen wird; mit Tag-Objekten startet die Anwendung die Suche nach jedem selbst neu. Vorher erkannte Tags werden ungültig.
Nachrichten hintereinander lesen
Eine NDEF-Sitzung, die mit invalidateAfterFirstRead auf falsch angelegt wurde, liest mehrere Tags. Apples Dokumentation des Initialisierers sagt, dass jeder gelungene Lesevorgang das Delegat über readerSession(_:didDetectNDEFs:) erreicht, bis die Sitzung abläuft oder von der Anwendung oder den Nutzenden abgebrochen wird.
Diese Methode des Delegats braucht keine Hilfe, um fortzufahren. Ihre Referenz sagt, dass die Sitzung die Suche neu startet, sobald die erkannten Tags außer Reichweite sind, sodass eine Reihe zu lesen nichts weiter als das Delegat verlangt.
Die Reihe endet trotzdem mit der Sitzung. Ein Ablauf erklärt sie mit readerSessionInvalidationErrorSessionTimeout für ungültig, und die Dokumentation nennt keine Dauer, eine Anwendung, die eine lange Reihe liest, sollte also damit rechnen, eine neue Sitzung zu starten.
Die Suche mit Tag-Objekten neu starten
Ein Delegat, das readerSession(_:didDetect:) umsetzt, erhält stattdessen Tag-Objekte und bittet mit restartPolling() selbst um den nächsten Tag. Eine Tag-Sitzung arbeitet genauso.
Ein Neustart hat seinen Preis. Apples Hinweis zu restartPolling() sagt, dass vorher erkannte Tags ungültig sind und die Anwendung ihre Verweise darauf verwerfen sollte, und dass der Aufruf auf einer bereits für ungültig erklärten Sitzung nichts bewirkt.
In einer NDEF-Sitzung, deren Delegat readerSession(_:didDetect:) nicht hat, ist der Aufruf sinnlos: Die Sitzung meldet Nachrichten und startet die Suche von selbst neu. Ab iOS 26.4 kann eine Tag-Sitzung mit einer neuen Configuration neu starten und zwischen zwei Tags ihre Möglichkeiten der Suche oder ihre Kennungen ändern.
Zwei Tags auf einmal
Eine Sitzung kann in demselben Durchgang mehr als einen Tag sehen. Apples Beispiel eines Tag-Lesegeräts behandelt das vor dem Schreiben: Es zählt die Tags, bittet darum, alle wegzunehmen, und startet die Suche nach einer halben Sekunde neu.
Dieselbe Regel passt zum Lesen. Zwei Tags im Feld während einer Reihe heißt meist zwei gestapelte oder zu nah beieinander liegende Tags, was die Seite zum Abstand behandelt.
Sagen, was geschehen ist
alertMessage ist die Stelle, auf die während eines Lesevorgangs geschaut wird. Seine Dokumentation sagt, dass eine Sitzung, die mehrere Tags liest, ihn nach jedem aktualisieren kann, aus jedem Thread, solange die Sitzung gültig bleibt.
Zählen Sie damit: Tag drei von zehn gelesen, weiter zum nächsten. Eine Reihe ohne Rückmeldung zwischen den Tags lässt die Nutzenden raten, ob das letzte Antippen gezählt hat.
Häufige Fragen
Warum hält meine Sitzung nach dem ersten Tag an?
invalidateAfterFirstRead steht auf wahr. Legen Sie die Sitzung mit falsch an, um weiterzulesen.
Muss restartPolling nach jedem Tag aufgerufen werden?
Nur wenn das Delegat über readerSession(_:didDetect:) Tag-Objekte erhält. Bei bloßen Nachrichten startet die Sitzung die Suche selbst neu, sobald die Tags außer Reichweite sind.
Wie lange dauert eine Sitzung?
Apple dokumentiert einen Fehler für den Ablauf, aber keine Dauer. Rechnen Sie damit, dass die Sitzung endet, und starten Sie für eine lange Reihe eine neue.
Lässt sich ein Tag-Objekt nach dem Neustart der Suche weiter benutzen?
Nein. Vorher erkannte Tags sind ungültig, und Apple bittet Anwendungen, ihre Verweise darauf zu verwerfen.