我有一个问题。我正在尝试解析 JSON。但是,我遇到了错误。这行“completionHandler(modelList)”中的名称为“无法调用非函数类型‘[Movie]’的值”,您能帮我吗?
这是我的课;
class Movie {
var type : String?
var title: String?
var thumbnail: String?
var id: String?
init(Dictionary : [String:AnyObject]){
self.title = Dictionary["Title"] as? String
self.id = Dictionary["Id"] as? String
self.type = Dictionary["Type"] as? String
}
static func fetchData(completionHandler: ([Movie])) -> () {
let urlString = "http://tcm-api.azurewebsites.net/api/movie/search?term='Batman'&page=1"
NSURLSession.sharedSession().dataTaskWithURL(NSURL(string: urlString)!) { (data, response, error) -> Void in
if error != nil {
print(error)
return
}
do {
var modelList = [Movie]()
let json = try NSJSONSerialization.JSONObjectWithData(data!, options: .MutableContainers)
for resultDictionary in json["Data"]!!["Results"] as! [[String : AnyObject]] {
let model = Movie(Dictionary: resultDictionary)
modelList.append(model)
}
dispatch_async(dispatch_get_main_queue()) {
completionHandler(modelList)
}
} catch {
print(error)
}
}.resume()
}
}
最佳答案
如果仔细查看函数声明:
func fetchData(completionHandler:([Movie]))->() {
等于:
func fetchData(completionHandler: [Movie]) {
你想要的是这样的:
func fetchData(completionHandler: [Movie] -> Void) {
关于json - 关于 swift 解析 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38173350/