Ich versuche, json-Daten (im Array-Format) abzurufen und zu überprüfen, ob mein lokales Array die Daten bereits enthält, falls es sich bewegt auf den nächsten Wert in den JSON-Daten, bis ihr Wert ein Wert ist, den das Array nicht enthält, und dann an das Array anhängen. Diese Daten im Array müssen in der richtigen Reihenfolge sein. Ich versuche, dies jetzt zu tun, aber den Fehler:Typ 'customDataObject' entspricht nicht dem Protokoll 'Sequence'
Type 'ResultsGenrePosters' does not conform to protocol 'Sequence'
Dies ist, wie es aussieht:
public struct ResultsGenrePosters: Decodable {
public let results : [GenrePosters]?
public init?(json: JSON) {
results = "results" <~~ json
}
}
public struct GenrePosters: Decodable {
public let poster : String
public init? (json: JSON) {
guard let poster: String = "poster_path" <~~ json
else {return nil}
self.poster = poster
}
static func updateGenrePoster(genreID: NSNumber, urlExtension: String, completionHandler:@escaping (_ details: [String]) -> Void){
var posterArray: [String] = []
let nm = NetworkManager.sharedManager
nm.getJSONData(type:"genre/\(genreID)", urlExtension: urlExtension, completion: {
data in
if let jsonDictionary = nm.parseJSONData(data)
{
guard let genrePosters = ResultsGenrePosters(json: jsonDictionary)
else {
print("Error initializing object")
return
}
guard let posterString = genrePosters.results?[0].poster
else {
print("No such item")
return
}
for posterString in genrePosters {
if posterArray.contains(posterString){continue
} else { posterArray.append(posterString) } //This is where the error happens
}
}
completionHandler(posterArray)
})
}
}
Ihre Namensgebung ist eine Art Singular/Plural Verwirrung ;-) – vadian