Paginator-API – iOS

  • Freigeben Version: Washingtondc
  • Aktualisiert 1. Februar 2024
  • 3 Minuten Lesedauer
  • Die Paginator -Klasse stellt Methoden zum Durchlaufen eines Datensatzes bereit, der von einem Aufruf der ServiceNow Table -API über NowTableService zurückgegeben wird. Es ist das Objekt, das von den NowTableService paginator()- Methoden zurückgegeben wird. Rufen Sie diese Methode nicht außerhalb dieser Umgebung auf.

    Tabelle : 1. Eigenschaften
    Name Typ Beschreibung
    hasNext Boolean Kennzeichnung, die angibt, ob eine nächste Seite abgerufen werden soll.
    Gültige Werte:
    • true: Nächste Seite ist verfügbar.
    • false: Nächste Seite ist nicht verfügbar.
    hasPrevious Boolean Kennzeichnung, die angibt, ob eine vorherige Seite abgerufen werden soll.
    Gültige Werte:
    • true: Vorherige Seite ist verfügbar.
    • false: Vorherige Seite ist nicht verfügbar.
    ist Beschäftigt Boolean Kennzeichnung, die angibt, ob das Paginator-Objekt mit dem Abrufen von Daten ausgelastet ist.
    Gültige Werte:
    • true: Herausgeber ist ausgelastet.
    • false: Herausgeber ist nicht ausgelastet.
    ist Beendet Boolean Kennzeichnung, die angibt, ob das Paginator-Objekt abgeschlossen ist. Wenn der Paginator so konfiguriert ist, dass er beendet wird, wird der Herausgeber des Paginator-Objekts beendet, wenn die letzte Seite abgerufen wurde. Ein Paginator-Objekt kann nach Abschluss keine Seiten abrufen. Weitere Informationen finden Sie in der Beschreibung des Parameters publisherShouldFinish.
    Gültige Werte:
    • true: Herausgeber ist fertig.
    • false: Der Herausgeber ist nicht fertig.
    itemsProSeite Ganzzahl Anzahl der pro Seite abzurufenden Elemente.

    Standard: 20

    AnzahlSeiten Ganzzahl Gesamtzahl der Seiten innerhalb des Datensatzes.

    Wenn das Paginator-Objekt noch keine Seiten abgerufen hat, wird dieser Parameter auf Int.max festgelegt. Nachdem eine erste Anforderung an die Instanz ServiceNow gestellt wurde, wird die Anzahl der Seiten auf die tatsächliche Anzahl der von der Instanz ServiceNow empfangenen Seiten aktualisiert.

    Seite Ganzzahl Aktuelle Seite innerhalb des paginierten Datensatzes.
    publisher Zeichenfolge Herausgeber, der den Stream paginierter Daten an die Abonnenten bereitstellt.
    Hinweis:
    Standardmäßig wird der Herausgeber nicht abgeschlossen. Um dieses Verhalten zu ändern, legen Sie die Eigenschaft publisherShouldFinish auf truefest.
    HerausgeberSollteEnde sein Boolean Kennzeichnung, die angibt, ob der Herausgeber des Paginator-Objekts angehalten werden soll, wenn die letzte Seite abgerufen wurde. Ein Paginator-Objekt kann nach Abschluss keine Seiten abrufen.
    Gültige Werte:
    • true: Sobald die letzte Seite abgerufen wurde, ist der Herausgeber von der Bereitstellung zusätzlicher Daten befreit. Die Methode „ reset() “ funktioniert nicht mehr.
    • false: Der Herausgeber wird nie abgeschlossen, und alle Methoden sind unabhängig von der Navigation vollständig funktionsfähig.

    Standardwert: false

    Paginator – first() wirft

    Ruft die erste Seite der Rückgabeergebnisse ab.

    Wenn diese Methode die erste Seite nicht abrufen kann, wird ein PaginationError ausgelöst.

    Tabelle : 2. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 3. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    class PaginatorTestViewModel<T: JSONRepresentable>: ObservableObject {
      @Published var result: Result<String, Error>?
      private let paginator: Paginator<T>
      private var subscriptions = Set<AnyCancellable>()
    
      init(paginator: Paginator<T>) {
        self.paginator = paginator
        subscribeToPaginator()
      }
    
      private func subscribeToPaginator() {
        paginator.publisher
          .receive(on: DispatchQueue.main)
          .sink { [weak self] comp in
            if case .failure(let error) = comp {
              self?.result = .failure(error)
            }
          } receiveValue: { [weak self] jsonRepresentable in
            self?.result = .success(jsonRepresentable.jsonDescription)
          }
          .store(in: &subscriptions)
      }
    
      func first() {
        result = nil
        do {
          try paginator.first()
        } catch {
          self.result = .failure(error)
        }
      }
    }

    Paginator – last() löst aus

    Ruft die letzte Seite der zurückgegebenen Ergebnisse ab.

    Wenn diese Methode die letzte Seite nicht abrufen kann, wird ein PaginationError ausgelöst.

    Tabelle : 4. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 5. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    …
    func last() {
      result = nil
      do {
        try paginator.last()
      } catch {
        self.result = .failure(error)
      }
    }
    …

    Paginator – next() löst aus

    Ruft die nächste Seite der Rückgabeergebnisse ab.

    Wenn keine weiteren Seiten abzurufen sind, löst die Methode einen PaginationErroraus.

    Tabelle : 6. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 7. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    …
    func next() {
      result = nil
      do {
        try paginator.next()
      } catch {
        self.result = .failure(error)
      }
    }
    …

    Paginator – previous() löst aus

    Ruft die vorherige Seite der Rückgabeergebnisse ab.

    Wenn die Methode die vorherige Seite nicht abrufen kann, wird ein PaginationError ausgelöst.

    Tabelle : 8. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 9. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    …
    func previous() {
      result = nil
      do {
        try paginator.previous()
      } catch {
        self.result = .failure(error)
      }
    }
    …

    Paginator – Reset()

    Setzt den Paginator auf die erste Seite zurück, gibt jedoch nicht die erste Seite der Rückgabeergebnisse zurück.

    Tabelle : 10. Parameter
    Name Typ Beschreibung
    Keine
    Tabelle : 11. Ergebnisse
    Typ Beschreibung
    Keine

    Das folgende Codebeispiel zeigt, wie diese Methode aufgerufen wird.

    …
    func reset() {
      result = nil
      paginator.reset()
    }
    …