2016-06-28 5 views
1
Inhalt txt-Datei in ein Wörterbuch in Swift zu analysieren

Ich versuche, den Inhalt einer .txt-Datei zu analysieren, die die folgenden Daten in diesem Format enthält:Versuch

93 --- Afghanistan 
355 --- Albania 
213 --- Algeria 
684 --- American Samoa 
376 --- Andorra 
244 --- Angola 
... 
1 670 --- North Mariana Islands (Saipan) 
... 

FYI, sind diese Vorwahlen für verschiedene Länder.

Ich muss die Daten mit Swift lesen, und es in ein Dictionary, wo die Schlüssel sind Ländernamen, und die Werte sind die Vorwahlen.

Dies ist der Code, den ich bisher haben:

class ViewController: UIViewController { 

    var dataArray:[String]? 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 
     loadCountryCodes() 
    } 

    func loadCountryCodes() { 
     // Specify the path to the countries list file. 
     let pathToFile = NSBundle.mainBundle().pathForResource("countrycodes", ofType: "txt") 

     if let path = pathToFile { 
      // Load the file contents as a string. 
      let countriesString = try! String(contentsOfFile: path, encoding: NSUTF8StringEncoding) 

      // Append the countries from the string to the dataArray array by breaking them using the line change character. 
      dataArray = countriesString.componentsSeparatedByString("\n") 


     } 
    } 

} 

Im Moment habe ich nur wissen, wie jede Zeile in, zu lesen, aber was ich zu tun ist, möchte ich jede Zeile eingelesen , fügen Sie dem Wörterbuch die erste Zeichenfolge als Wert und die zweite Zeichenfolge, die nach dem Schlüssel (---) als Schlüssel angezeigt wird, hinzu. Hat jemand irgendwelche Vorschläge?

Antwort

1

Kann so etwas wie dies versuchen, habe den Code nicht getestet, obwohl so müssen möglicherweise einige Tweaking

var dictionary = [String: String]() 

for line in dataArray { 

    var components = line.componentsSeparatedByString(" --- ") 

    dictionary[components[0]] = components[1] 
} 
+0

Vielen Dank für Ihre Antwort. Ich habe versucht, Ihren Code auszuführen, aber ich bekomme den folgenden Fehler: fataler Fehler: unerwartet gefunden Null beim Entpacken ein optionaler Wert auf Ihrer letzten Zeile: Wörterbuch [Int (Komponenten [0])!] = Komponenten [1 ] – syedfa

+1

hmm legte einen Haltepunkt auf dieser Linie und sehen, welche Werte innerhalb 'Komponenten' sind scheint, wie es ein' nil' innen aus irgendeinem Grund erhält – Fonix

+1

auch sicherstellen, dass in Ihrer Textdatei alle Vorwahlen in der Tat Zahlen sind .. andernfalls müssen Sie Strings verwenden – Fonix