2017-08-27 3 views
-1

Hier ist mein Problem: Ich habe eine PLIST-Datei, die eine einfache Strebe haben: Root-Objekt ist ein Array, und es gibt 2 Abschnitte im Array, jeder von ihnen sind Wörterbuch einschließlich 2 Paar Schlüssel-Wert-Daten:Wie bekomme ich Daten in einem Array schnell?

enter image description here

und ich werde eine Tableview erstellen, um die Daten zu zeigen, aber ich kann den Inhalt aus dem Array nicht erhalten:

enter image description here hier ist, wie ich meine dataarray erklärte:

var plistArray = [AnyObject]() 

kann mir jemand helfen?

+0

@rmaddy Ihre Frage brillant beantwortet hat. Ich möchte nur den zweiten Fehler oben erklären (den er für Sie gelöst hat). Wenn Sie imgaName definiert haben, war es innerhalb des {} einer if-Anweisung. Sobald Sie die if-Anweisung zurücklassen, verschwindet imgaName. Es existiert nur innerhalb dieser {}. – Mozahler

+1

danke, mein Fehler XD – Neko

Antwort

1

Sie müssen richtig auf jeder Ebene zu gieße:

if let innerArray = plistArray[0] as? [AnyObject] { 
    if let dataDic = innerArray[indexPath.row] as? [String:String] { 
     if let imageName = dataDic["Pic"] { 
      cell?.imageView?.image = UIImage(named: imageName) 
     } 
    } 
} 

Aber warum Sie AnyObject verwenden, wenn Sie wissen, was die plist enthält? Verwenden Sie geeignete Typen. Sie wissen, dass es sich um ein Array von Dictionaries mit String-Schlüsseln und String-Werten handelt.

var plistArray = [[[String:String]]]() 

Dann alles, was Sie brauchen, ist:

if let imageName = plistArray[0][indexPath.row]["Pic"] { 
    cell?.imageView?.image = UIImage(named: imageName) 
} 
+0

Vielen Dank, kann ich noch eine Frage stellen? Wenn ich eine Variable in swift deklarieren möchte, was ist der Unterschied zwischen: 'var array: array' und' var array: [Any]? ', und wie deklariert man ein leeres Array? 'var array: []' oder 'var array: []()' scheint nicht zu funktionieren – Neko

+0

Darf ich vorschlagen, dass Sie Zeit damit verbringen, [The Swift Programming Language] zu lesen (https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language /) Buch von Apple zur Verfügung gestellt. Es wird solche grundlegenden Fragen beantworten. – rmaddy

Verwandte Themen