ich mit der Initialisierung Struct ein Problem habe mit JSON Daten aus der URLRequest in Swift 3.flatMap, Struct und JSON in Swift 3
Das Protokoll JSONDecodable erhalten:
protocol JSONDecodable {
init?(JSON: [String : AnyObject])
}
ist die Struktur wie folgt und es implementiert Erweiterung, die zu JSONDecodable entspricht:
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
}
}
Dann habe ich den folgenden Code, wo ich versuche, eine Reihe von Wörterbüchern zu kartieren Schauspieler auf struct. Ich denke, dass ich Swift 2 und Swift 3 Syntax zusammen mische.
guard let actorsJSON = json?["response"] as? [[String : AnyObject]] else {
return
}
return actorsJSON.flatMap { actorDict in
return Actor(JSON: actorDict)
}
Allerdings bekomme ich folgende Fehlermeldung: 'flatMap' produces '[SegmentOfResult.Iterator.Element]', not the expected contextual result type 'Void' (aka '()')
Jede Hilfe wäre sehr dankbar!
In dem Verfahren, in dem Sie das 'flatMap' Ergebnis zurück, so scheint es, als ob Sie den Rückgabetyp in der Funktion Signatur mit Anmerkungen versehen Typen Vergessenes zu haben. Nun, Sie haben uns diese Funktion nicht gezeigt, aber stellen Sie sicher, dass Ihre Funktion nicht wie 'func myFunction (einige Argumente) {...' aussieht, sondern 'func myFunction (einige Argumente) -> [Actor] {. ..'. – dfri