Как сделать последовательные звонки, чтобы вытащить разбитые на страницы данные в Swift
После нажатия кнопки мне нужно вытащить данные, разбитые на страницы (вытащить контакты из Pinterest IOS SDK, количество контактов ограничено 25 для вызова), т.е. мне нужно, чтобы мой код повторялся до responseObject
больше никогда .hasnext
, Какой лучший способ подойти к этому? Я могу нажимать кнопку снова и снова, чтобы потянуть все это вниз, но я хочу автоматизировать ее, поэтому требуется только одно нажатие кнопки.
@IBAction func didPressGetPinsButton(sender: UIButton) {
if self.fetchingMore == false && self.currentResponseObject.hasNext() {
self.fetchingMore = true
self.currentResponseObject.loadNextWithSuccess({ (nextResponseObject :PDKResponseObject!) -> Void in
self.fetchingMore = false
self.currentResponseObject = nextResponseObject
guard let unwrappedArrayOfPins = nextResponseObject.pins() as? [PDKPin] else {return}
for pin in unwrappedArrayOfPins {
pins.append(pin)
}
1 ответ
Поместите код действия в отдельную функцию, чтобы вы вызывали его в первый раз после нажатия кнопки, а затем продолжали повторно вызывать его, пока.hasNext
@IBAction func didPressGetPinsButton(sender: UIButton) {
actionGetPins()
}
func actionGetPins() {
// all your code
if nextResponseObject.hasNext() {
actionGetPins()
}
}
В зависимости от того, сколько времени потребуется, чтобы получить все данные, вы также можете запустить всю функцию в фоновом режиме, но вы должны хотя бы добавить индикатор занятости, чтобы показать, что работа еще не завершена.