zu referenzieren Ich habe eine Funktion, die ich gerne wiederverwenden möchte und es einen Parameter einer Decocable Struktur akzeptieren. Zum Beispiel, ist dies eine Vereinfachung meines aktuellen Code ist (unter der Annahme „MyDecodableStruct“ ist eine Dekodierbare Struktur an anderer Stelle in der App erklärt):Wie eine generische Decodable Struktur in Swift 4
static func getResults(url: String, parameters: Parameters) {
// On success REST response
if response.result.isSuccess {
struct Results: Decodable {
let items: [MyDecodableStruct]
}
if let jsonResults = try? JSONDecoder().decode(Results.self, from: response.data!) {
//success
}
}
und anstatt zu sagen „MyDecodableStruct“, mag ich es ein Dekodierbare sein struct I gebe ich als Parameter ein. Etwas wie folgt aus:
static func getResults(url: String, parameters: Parameters, myStruct: Decodable) {
// On success REST response
if response.result.isSuccess {
struct Results: Decodable {
let items: [myStruct]
}
if let jsonResults = try? JSONDecoder().decode(Results.self, from: response.data!) {
//success
}
}
und ich kann es nennen wie
getResults(url: "url", parameters: nil, myStruct: MyDecodableStruct)
ich nicht die Syntax herausfinden können, wie dies zu bekommen, obwohl zu arbeiten. Die Fehler, die ich bekomme, sind
Type 'Results' does not conform to protocol 'Decodable'
Expected element type
Irgendwelche Ideen auf den besten Weg, damit umzugehen?
Sehr hilfreich, danke! –