извлечение большого количества данных из API и использование их внутри UICollectionView Swift - PullRequest
0 голосов
/ 03 февраля 2020

Здравствуйте, я работаю над приложением, которое извлекает данные о фильмах, но у меня есть некоторые проблемы, вот мой код:

let categories = [MovieCategory(generID: "28", categoryTitle: "Action")
    ,MovieCategory(generID: "16", categoryTitle: "Animation")
    ,MovieCategory(generID: "35", categoryTitle: "Comedy"),
     MovieCategory(generID: "18", categoryTitle: "Drama"),
     MovieCategory(generID: "27", categoryTitle: "Horror"),
     MovieCategory(generID: "10752", categoryTitle: "War")]

func parseJson( category: MovieCategory)
{

    self.collectionView.reloadData()
    var currentCategory = category
    let parameters = ["api_key":"8460d476d21be7e26a99234d8ca8de51","sort_by":"false","include_video":"false","with_genres":category.generID]

    Alamofire.request(url, method: .get, parameters: parameters).responseJSON { (response) in
        if response.result.isSuccess{
            let movieJSON = JSON(response.result.value!)

for i in 0..<20{
        let title = movieJSON["results"][i]["title"].stringValue
        let posterPath = movieJSON["results"][i]["poster_path"].stringValue

        let overview = movieJSON["results"][i]["overview"].stringValue
        let dateReleased = movieJSON["results"][i]["release_date"].stringValue
        let voteAverage = movieJSON["results"][i]["vote_average"].stringValue
        if let safeImage = self.createImage(posterPath: posterPath)
        {
        let movieDetails = MovieDetails(movieTitle: title, poster: safeImage, voteAverage: voteAverage, overview: overview, releaseDate: dateReleased)
        currentCategory.categoryMovies.append(movieDetails)
        self.actionMovies.append(UIImage(named: "gul")!)
        self.collectionView.reloadData()
        }

            }

                                   }

        }
}

, и я использую две структуры в качестве источников данных, и вот они:

struct MovieCategory {
let generID:String
let categoryTitle:String
var categoryMovies:[MovieDetails] = []

} и:

struct MovieDetails{
let movieTitle:String
let poster:UIImage
let voteAverage:String
let overview:String
let releaseDate:String

}, но когда я хочу получить данные внутри category.categoryMovies, оказывается пустым, как только я добавляю данные к нему в синтаксическом анализе Json Я не знаю, почему он пустой, когда вызывается метод numberOfItemsInSection, он возвращает категории [section] .categoryMovies.count и не вызывает метод cellForItemAtIndexpath, из-за которого я думаю, что он пуст. если вы знаете решение, я очень ценю вашу помощь.

спасибо

1 Ответ

0 голосов
/ 04 февраля 2020

Я нашел решение, просто определив структуры как класс, потому что они передают значения по ссылке, и это решает мою проблему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...