API do Paginator - iOS
A classe Paginator fornece métodos para iterar por meio de um conjunto de registros retornado por uma chamada para a API ServiceNow de tabela por meio do NowTableService. É o objeto retornado pelos métodos NowTableService paginator(). Não chame este método fora desse ambiente.
| Nome | Tipo | Descrição |
|---|---|---|
| hasNext | Booliano | Sinalizador que indica se há uma próxima página a ser buscada. Valores válidos:
|
| temAnterior | Booliano | Sinalizador que indica se há uma página anterior a ser buscada. Valores válidos:
|
| estáOcupado | Booliano | Sinalizador que indica se o objeto Paginator está ocupado buscando dados. Valores válidos:
|
| estáConcluído | Booliano | Sinalizador que indica se o objeto Paginator foi concluído. Quando o paginador está configurado para ser concluído, o fornecedor do objeto Paginator é concluído quando a última página é obtida. Um objeto Paginator não pode buscar páginas após a conclusão. Para obter informações adicionais, consulte a descrição do parâmetro publisherShouldFinish. Valores válidos:
|
| itensPorPágina | Números inteiros | Número de itens a serem buscados por página. Padrão: 20 |
| númeroDePáginas | Números inteiros | Número total de páginas no conjunto de registros. Quando o objeto Paginator ainda não tiver obtido nenhuma página, este parâmetro será definido como |
| página | Números inteiros | Página atual no conjunto de registros paginados. |
| fornecedor | Cadeia de caracteres | Fornecedor que fornece o fluxo de dados paginados aos assinantes. Nota: Por padrão, o fornecedor não termina. Para mudar esse comportamento, defina a propriedade publisherShouldFinish como verdadeira. |
| publicadorDeveTermina | Booliano | Sinalizador que indica se o publicador do objeto Paginator deve ser interrompido quando a última página for obtida. Um objeto Paginator não pode buscar páginas após a conclusão. Valores válidos:
Padrão: falso |
Paginador - lançamentos first()
Busca a primeira página dos resultados de retorno.
Se este método não puder buscar a primeira página, ele emitirá um PaginationError.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar este método.
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)
}
}
}
Paginador - lançamentos de last()
Busca a última página dos resultados retornados.
Se este método não puder buscar a última página, ele emitirá um PaginationError.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar este método.
…
func last() {
result = nil
do {
try paginator.last()
} catch {
self.result = .failure(error)
}
}
…
Paginador - lançamentos de next()
Busca a próxima página dos resultados de retorno.
Se não houver mais páginas para buscar, o método emitirá um PaginationError.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar este método.
…
func next() {
result = nil
do {
try paginator.next()
} catch {
self.result = .failure(error)
}
}
…
Paginador - lançamentos anteriores ()
Busca a página anterior dos resultados retornados.
Se o método não puder buscar a página anterior, ele emitirá um PaginationError.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar este método.
…
func previous() {
result = nil
do {
try paginator.previous()
} catch {
self.result = .failure(error)
}
}
…
Paginador - redefinir()
Redefine o Paginador de volta para a primeira página, mas não retorna a primeira página dos resultados de retorno.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Nenhum(a) |
O exemplo de código a seguir mostra como chamar este método.
…
func reset() {
result = nil
paginator.reset()
}
…