-1
我有初始化結構中的問題,在夫特3.flatMap,結構和JSON在夫特3
從接收的URLRequest JSON數據的協議JSONDecodable:
protocol JSONDecodable {
init?(JSON: [String : AnyObject])
}
的結構是如下它實現擴展,符合JSONDecodable:
struct Actor {
let ActorID: String
let ActorName: String
}
extension Actor: JSONDecodable {
init?(JSON: [String : AnyObject]) {
guard let ActorID = JSON["ActorID"] as? String, let ActorName = JSON["ActorName"] as? String else {
return nil
}
self.ActorID = ActorID
self.ActorName = ActorName
}
}
然後,我有以下的代碼,我試圖映射字典的數組結構演員。我認爲我將Swift 2和Swift 3語法混合在一起。
guard let actorsJSON = json?["response"] as? [[String : AnyObject]] else {
return
}
return actorsJSON.flatMap { actorDict in
return Actor(JSON: actorDict)
}
不過,我得到以下錯誤:'flatMap' produces '[SegmentOfResult.Iterator.Element]', not the expected contextual result type 'Void' (aka '()')
任何幫助將不勝感激!
在該方法中,你返回'flatMap'結果,它好像你忘詞鍵入註釋在函數簽名的返回類型。現在,你還沒有向我們展示這個函數,但要確保你的函數看起來不像'func myFunction(一些參數){...',而是'func myFunction(一些參數) - > [Actor] {。 ..'。 – dfri