Нумерация страниц mov ie DB по-быстрому - PullRequest
0 голосов
/ 08 апреля 2020

У меня возникают проблемы с быстрой настройкой нумерации страниц с помощью API MovieDB. Обычно у вас есть лимит и оффсет, которые будут передаваться в ваш массив моделей .count -1 при работе с CollectionViews. Я работаю с диффузным источником данных и не могу видеть кто-нибудь может реализовать это или что-то подобное?

текущая служба API выглядит следующим образом

  class APIService {

      static let shared = APIService()

    //always pass in your first API so the one which holds title, release date ect
    func fetchMovies(completionHandler: @escaping ([Movie]?, Error?) -> ()) {

        guard let url = URL(string: APINOWPLAYING) else {
            print("not a valid url")
            return
        }
        let request = URLRequest(url: url)
        URLSession.shared.dataTask(with: request) { (data, response, error) in
            if let data = data {//when Decoding use the 2nd API model with the array 
                if let decodedResponse = try? JSONDecoder().decode(Movies.self, from: data) {

                    DispatchQueue.main.async {
                        completionHandler(decodedResponse.results, nil)
                        print("TOTAL RESULTS \(decodedResponse.page)")
                    }
                    return
                }
            }
            print("Fatch Failed \(error?.localizedDescription ?? "error unknown")")
        }.resume()

    }

контроллер представления

  private func setupDiffableDataSource() {
        collectionView.dataSource = diffDataSource

        //MARK:- SetupHeader under Compositional Sections Extension
        setupHeader()

        APIService.shared.fetchMovies { (movies, err) in

            APIService.shared.fetchTopMovies { (movieGroup, err) in

                var snapshot = self.diffDataSource.snapshot()
                snapshot.appendSections([.topSection])
                snapshot.appendItems(movies ?? [], toSection: .topSection)

                snapshot.appendSections([.bottomSection])
                let objects = movieGroup?.results ?? []
                snapshot.appendItems(objects, toSection: .bottomSection)

                self.diffDataSource.apply(snapshot)
            }
        }
    }

делает кто-нибудь знает, как работать с API для разбивки на страницы?

так выглядит вызов API MOVIEDB

let APINOWPLAYING = "https://api.themoviedb.org/3/movie/now_playing?api_key= (APIKEY) & language = en -US & page = 1 & total_pages = 56"

в надежде, что кто-то может указать мне правильное направление

спасибо

...