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