2016-06-28 3 views
1

Я пытаюсь разобрать содержимое текстового файла, который содержит следующие данные в этом формате:Попытки разобрать содержимое текстового файла в словарь в Swift

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

FYI, это область коды различные страны.

Мне нужно прочитать данные с помощью Swift и поместить их в словарь, где ключи являются названиями стран, а значениями являются коды областей.

Это код, который у меня до сих пор:

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") 


     } 
    } 

} 

На данный момент, я только знаю, как читать каждую строку, но то, что я хотел бы сделать, как я прочитал каждую строку в , добавьте первую строку в словарь как значение, а вторую строку, которая появляется после (---) в качестве ключа. У кого-нибудь есть предложения?

ответ

1

Может попробовать что-то вроде этого, не проверял код, хотя так может понадобиться некоторые настройки

var dictionary = [String: String]() 

for line in dataArray { 

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

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

Большое спасибо за Ваш ответ. Я попытался запустить ваш код, но я получаю следующую ошибку: Неустранимая ошибка: неожиданно найдено нуль при развертывании Необязательное значение в вашей последней строке: словарь [Int (компоненты [0])!] = Компоненты [1 ] – syedfa

+1

hmm положил точку останова на эту строку и посмотрел, какие значения находятся внутри 'components', похоже, что он получает' nil' внутри по какой-то причине – Fonix

+1

также убедитесь, что в вашем текстовом файле все коды областей на самом деле являются числами .. в противном случае вам придется использовать строки – Fonix

 Смежные вопросы

  • Нет связанных вопросов^_^