Ich habe eine JSON-Datei wie unten, ich möchte es analysieren und füllen Sie meine Tabellenansicht.swift - JSON-Wörterbuch Parsing
Was will ich bekommen ist "Material", "Kategorien", "product_types"
["facets": {
"material" : {
"data" : [
{
"count" : 3,
"value" : "95% Polyester, 5% Spandex"
},
{
"count" : 1,
"value" : "%100 Modal"
}
],
},
"categories" : {
"data" : [
{
"id" : "7",
"name" : "test"
}
],
},
"product_types" : {
"data" : [
{
"count" : 3,
"value" : "Sweatshirt"
},
{
"count" : 1,
"value" : "Babet"
},
],
}
}]
Mein Code ist:
var list: [String:JSON]? = [:]
func loadList(){
ModafiliAPI.sharedInstance.refine(callback: { (refineList) in
if let data = refineList["facets"].dictionaryValue as [String:JSON]?{
self.list = data
self.RefineTableView!.reloadData()
print(self.refineList!)
}
})
}
beobachte ich, dass ich "Facetten" aus dem Zugriff auf Druckausgabe. Aber in cellforrowat
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "RefineCell") as! RefineTableViewCell
cell.refineList = self.refineList?[indexPath.row] //-->>error
return cell
}
Ich erhalte die folgende Fehlermeldung: Ambiguous reference to member 'subscript'
UITableViewCell:
var refineList:[String:JSON]?{
didSet{
self.setupRefineList()
}
}
Sie nicht SwiftyJSON im Modell verwendet werden soll. Es ist einfach ein brillantes Werkzeug, um JSON zu * echten * Collection-Typen oder benutzerdefinierten Klassen/Strukturen zu analysieren. Es generiert eine Menge - unnötigen - Overhead zum Deserialisieren der Objekte in der Datenquelle der Tabellenansicht und Delegieren von Methoden. Und deklarieren Sie das Datenquellenarray einer konkreten vorhandenen Tabellensicht nicht als optional. – vadian