API du paginateur : iOS
La classe Paginator fournit des méthodes d’itération à travers un ensemble d’enregistrements renvoyé par un appel à l’API ServiceNow de table via NowTableService. C’est l’objet qui est renvoyé par les méthodes paginator() NowTableService. N’appelez pas cette méthode en dehors de cet environnement.
| Nom | Type | Description |
|---|---|---|
| hasNext | Booléen | Marqueur indiquant s’il existe une page suivante à extraire. Valeurs valides :
|
| hasPrevious | Booléen | Marqueur indiquant s’il existe une page précédente à extraire. Valeurs valides :
|
| isBusy | Booléen | Marqueur indiquant si l’objet Paginateur est occupé à extraire des données. Valeurs valides :
|
| isFinished (en anglais seulement) | Booléen | Marqueur indiquant si l’objet Paginator est terminé. Lorsque le paginateur est configuré pour se terminer, l’éditeur de l’objet Paginator se termine lorsque la dernière page a été extraite. Un objet Paginator ne peut extraire aucune page une fois qu’il est terminé. Pour plus d’informations, consultez la publisherShouldFinish description du paramètre. Valeurs valides :
|
| itemsPerPage | Entier | Nombre d’éléments à extraire par page. Par défaut : 20 |
| Nombre de pages | Entier | Nombre total de pages dans le jeu d’enregistrements. Lorsque l’objet Paginator n’a encore extrait aucune page, ce paramètre est défini sur |
| Page | Entier | Page actuelle dans l’ensemble d’enregistrements paginés. |
| éditeur | Chaîne | Éditeur qui fournit le flux de données paginées aux abonnés. Remarque : Par défaut, l’éditeur ne termine pas. Pour modifier ce comportement, définissez la publisherShouldFinish propriété sur true. |
| éditeurDevraitFinir | Booléen | Marqueur qui indique s’il faut arrêter l’éditeur de l’objet Paginator lorsque la dernière page a été extraite. Un objet Paginator ne peut extraire aucune page une fois qu’il est terminé. Valeurs valides :
Valeur par défaut : false |
Paginateur - first() lancers
Récupère la première page des résultats renvoyés.
Si cette méthode ne peut pas récupérer la première page, elle lève une PaginationError.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
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)
}
}
}
Paginateur : derniers lancers ()
Récupère la dernière page des résultats de renvoi.
Si cette méthode ne peut pas récupérer la dernière page, elle lève une PaginationError.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
…
func last() {
result = nil
do {
try paginator.last()
} catch {
self.result = .failure(error)
}
}
…
Paginateur : levers next()
Récupère la page suivante des résultats renvoyés.
S’il n’y a plus de pages à extraire, la méthode lève une PaginationError.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
…
func next() {
result = nil
do {
try paginator.next()
} catch {
self.result = .failure(error)
}
}
…
Paginateur : lancers previous()
Récupère la page précédente des résultats de renvoi.
Si la méthode ne peut pas récupérer la page précédente, elle lève une PaginationError.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
…
func previous() {
result = nil
do {
try paginator.previous()
} catch {
self.result = .failure(error)
}
}
…
Paginateur : reset()
Réinitialise le paginateur à la première page, mais ne renvoie pas la première page des résultats renvoyés.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Aucun |
L’exemple de code suivant montre comment appeler cette méthode.
…
func reset() {
result = nil
paginator.reset()
}
…