페이지네이터 API - iOS
Paginator 클래스는 NowTableService를 통해 ServiceNow Table API를 호출하여 반환된 레코드 집합을 반복하기 위한 메서드를 제공합니다. NowTableService paginator() 메서드에서 반환되는 개체입니다. 해당 환경 외부에서 이 메서드를 호출하지 마십시오.
| 이름 | 유형 | 설명 |
|---|---|---|
| hasNext | 부울 | 가져올 다음 페이지가 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
| hasPrevious | 부울 | 가져올 이전 페이지가 있는지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
| Isbusy | 부울 | Paginator 객체가 데이터를 가져오는 중인지 여부를 나타내는 플래그입니다. 유효한 값은 다음과 같습니다.
|
| 이스 마침 | 부울 | Paginator 개체가 완료되었는지 여부를 나타내는 플래그입니다. 페이지네이터가 완료되도록 구성되면 마지막 페이지를 가져올 때 페이지네이터 개체의 게시자가 완료됩니다. Paginator 객체는 완료된 후 페이지를 가져올 수 없습니다. 자세한 내용은 매개변수에 publisherShouldFinish 대한 설명을 참조하십시오. 유효한 값은 다음과 같습니다.
|
| itemsPerPage | 정수 | 페이지당 가져올 항목 수입니다. 기본값: 20 |
| numberOfPages | 정수 | 기록 세트 내의 총 페이지 수입니다. Paginator 개체가 아직 페이지를 가져오지 않은 경우 이 매개 변수는 |
| 페이지 | 정수 | 페이지를 매긴 기록 세트 내의 현재 페이지입니다. |
| 게시자 | 문자열 | 페이지를 매긴 데이터 스트림을 구독자에게 제공하는 게시자입니다. 주: 기본적으로 게시자는 완료되지 않습니다. 이 동작을 변경하려면 속성을 true로 설정하십시오publisherShouldFinish. |
| 퍼블리셔ShouldFinish | 부울 | 마지막 페이지를 가져올 때 Paginator 개체의 게시자를 중지할지 여부를 나타내는 플래그입니다. Paginator 객체는 완료된 후 페이지를 가져올 수 없습니다. 유효한 값은 다음과 같습니다.
기본값: false |
페이지네이터 - first()가 던집니다.
반환 결과의 첫 페이지를 가져옵니다.
이 메서드가 첫 번째 페이지를 가져올 수 없는 경우 PaginationError가 발생합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
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)
}
}
}
페이지네이터 - last()가 던집니다.
반환 결과의 마지막 페이지를 가져옵니다.
이 메서드가 마지막 페이지를 가져올 수 없는 경우 PaginationError가 발생합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
…
func last() {
result = nil
do {
try paginator.last()
} catch {
self.result = .failure(error)
}
}
…
페이지네이터 - next()가 던집니다.
반환 결과의 다음 페이지를 가져옵니다.
가져올 페이지가 더 이상 없으면 메서드가 PaginationError를 throw합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
…
func next() {
result = nil
do {
try paginator.next()
} catch {
self.result = .failure(error)
}
}
…
페이지네이터 - previous()가 던집니다.
반환 결과의 이전 페이지를 가져옵니다.
메서드가 이전 페이지를 가져올 수 없는 경우 PaginationError가 발생합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
…
func previous() {
result = nil
do {
try paginator.previous()
} catch {
self.result = .failure(error)
}
}
…
페이지네이터 - reset()
페이지네이터를 첫 페이지로 다시 설정하지만 반환 결과의 첫 번째 페이지는 반환하지 않습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 없음 |
| 유형 | 설명 |
|---|---|
| 없음 |
다음 코드 예제에서는 이 메서드를 호출하는 방법을 보여 줍니다.
…
func reset() {
result = nil
paginator.reset()
}
…