Как загрузить словарь из url файла plist

У меня есть файл plist в моем пакете, и я преобразую его в словарь, используя:

let path = Bundle.main.path(forResource: "myFile", ofType: "plist")
let dicFromFile = NSDictionary(contentsOfFile:path!)
myDictionary = dicFromFile as! [String : String]

Но я также хочу, чтобы приложение проверяло обновление этого файла, поэтому я помещаю его на общий сайт, поэтому у него есть некоторый url, как так:

https://www.dropbox.com/s/8ri13i2wggaz6/myFile.plist

как сделать так, чтобы NSDictionary читал url этого файла?

2 ответа

  1. OBJ-C

    NSMutableDictionary *autos = [[NSMutableDictionary alloc] initWithContentsOfURL:
                                     [NSURL urlWithString:@"https://www.dropbox.com/s/8ri13i2wggaz6/myFile.plist"]];
    

    быстрый

    let path = NSURL.init(string: "https://www.dropbox.com/s/8ri13i2wggaz6/myFile.plist")
            let dicFromFile = let dicFromFile = NSDictionary.init(contentsOf: path as! URL)
            myDictionary = dicFromFile as! [String : String]
    
  2. Для загрузки данных из удаленного URL-адреса используется асинхронный способ, А класс PropertyListSerializationдесериализует список свойств.

    let url = URL(string:"https://www.dropbox.com/s/8ri13i2wggaz6/myFile.plist"
    URLSession.shared.dataTask(with:url) { (data, response, error) in
       if error != nil {
          print(error!)
       } else {
          do {
             let dictionary = try PropertyListSerialization.propertyList(from: data!, options: [], format: nil) as! [String:Any]
             // do something with the dictionary
          } catch let error as NSError {
             print(error)
          } 
       }   
    }
    

    Если файл списка свойств содержит только Stringзначения – как предполагается в вопросе-приведите к [String:String]