JSON和flatMap - error Computed属性必须具有显式类型

时间:2017-01-06 23:17:51

标签: arrays json uitableview swift3 flatmap

我在返回的json数据上遇到了flatMap的困难。如何在以下代码中实现flatMap。我一直收到错误:Computed property must have an explicit type

let task = URLSession.shared.dataTask(with: request) { data, response, error in

    DispatchQueue.main.async {

       if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode == 200 {

            do {
                let json = try JSONSerialization.jsonObject(with: data!, options: []) as? [String: Any]

                if let actors = json?["response"] as? [[String : Any]]  {
                    self.arrayActors = actors.flatMap(Actor.init)
                }

                self.tableView.reloadData()

            } catch {
                print("catch error")
            }


    } //end of if let httpStatus


}//end dispatch

}//end of task

结构'演员'在这里:

struct Actor {
    let actorName: String

}

extension Actor {
    init?(JSON: [String : Any]) {
        guard let actorName = JSON["actorName"] as? String else {
            return nil
        }
        self.actorName = actorName   
    }
}

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我刚将其更改为var actorsArray: [Actor] = []并更改了self.actorsArray = actors.flatMap(Job.init)并且我工作了!!!非常感谢@OOPer !!!