从服务器获取后返回类数组的困难

时间:2018-04-06 11:33:01

标签: ios swift4

我正在创建一个全局函数来命中api并从服务器获得响应。然后该值以类数组的形式返回,但在数据任务外部打印时返回nil,该值将打印在数据任务中

这是我的全局函数代码

    func fetchMovieList(url: String ) -> [movies]{
            var movie = [movies]()
            global.currentUrl = url
            // constant to store the url for nowShowing
            let convertdUrl = URL(string: url)

            // creating a Url session for fetching json from the server
            URLSession.shared.dataTask(with: convertdUrl!){(data, response, error) in


                // if request is error free then decode the json using json decoder and assigning the values to the array
                guard let data = data else {return}
                do{
                    movie = try JSONDecoder().decode([movies].self, from: data)
                    //movieList.comingSoon = movieList.nowShowing
                    print("\(movie)")

                }catch {
                    print("Error")
                }
                }.resume()
            print("\(movie)")
            return movie
}

1 个答案:

答案 0 :(得分:0)

print("\(movie)")

这是返回nil,因为在从服务器接收任何数据之前执行该行。所以电影当时不会包含任何数据。一旦从服务器获得响应,您就可以将数据存储在电影中,然后进行打印。

如果您遇到从此功能返回数据的问题,您可以使用以下链接中给出的代码。 Here