Swift函数在TMDB封装器API中不明确

问题描述:

我在Swift中使用了TMDB中的API。我找到了一个wrapper。安装它与Cocoapods,现在我正在与功能摔跤。我认为自述文件已过时。所以用这个功能我想检索一个流派列表。Swift函数在TMDB封装器API中不明确

例如,在框架的功能:

///Get the list of tv or movie genres. 
    open class func genres(_ api_key: String!, listType: GenresListType, language: String?, completion: @escaping (_ clientReturn: ClientReturn, _ data: [GenresMDB]?) ->()) ->(){ 
    Client.Genres(api_key, listType: listType.rawValue, language: language, genreId: 0, page: nil, include_all_movies: nil, include_adult: nil, movieList: false){ 
     apiReturn in 
     if(apiReturn.error == nil){ 
     completion(apiReturn, GenresMDB.initialize(json: apiReturn.json!["genres"])) 
     }else{ 
     completion(apiReturn, nil) 
     } 
    } 
    } 

在自述文件中的函数被调用像这样(得到电影或电视类型的列表):

GenresMDB.genres(apikey, listType: .tv, language: "en"){ 
    apiReturn, genres in 
    if let genres = genres{ 
    genres.forEach{ 
     print($0.name) 
    } 
    } 
} 

但我认为,它过时了。

所以现在我称之为一个viewController.swift功能是这样的:

GenresMDB.genres(apiKey, listType: .movie, language: "en", completion: (ClientReturn, [GenresMDB]?) ->()) { 
} 

我想流派的电影语言与英语列表。但我仍然不明白完成处理程序会做什么。或者我如何保存函数返回的数据(我认为是JSON格式)。有人理解这个功能并向我解释吗?

自维基上次更新以来没有什么改变了。下面是一个如何实现你想要的例子。

GenresMDB.genres(key, listType: .movie, language: "en", completion: { 
    error, genresData in 
    //Do something with genres returned 
    print(genresData[0].name) 
}) 

您也可以在迅速

https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html

使用 closures/ completion handlers检查出的文档