2016-07-03 5 views
0

У меня вопрос. Я пытаюсь разобрать JSON.However, у меня есть ошибка. Он называется «Невозможно вызвать значение нефункционного типа» [Movie] «» в этой строке «completeHandler (modelList)» Можете ли вы мне помочь?О быстрых Parsing JSON

Это мой класс;

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() 
    } 
} 

ответ

0

Если вы посмотрите внимательно на объявление функции:

func fetchData(completionHandler:([Movie]))->() { 

который равен:

func fetchData(completionHandler: [Movie]) { 

Что вы хотите, это:

func fetchData(completionHandler: [Movie] -> Void) {