我正在创建一个全局函数来命中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
}
答案 0 :(得分:0)
print("\(movie)")
这是返回nil,因为在从服务器接收任何数据之前执行该行。所以电影当时不会包含任何数据。一旦从服务器获得响应,您就可以将数据存储在电影中,然后进行打印。
如果您遇到从此功能返回数据的问题,您可以使用以下链接中给出的代码。 Here