ios - 如何从服务器读取Plist文件并直接使用它而不创建本地文件?

标签 ios objective-c swift3

我正在开发一个项目,并且在服务器上有一些通过Plist文件获取的设置,我想在不创建任何本地副本的情况下读取此Plist文件。

需要将此设置存储在词典中而不是本地Plist文件中。

知道我们该怎么做吗?

如下所示的示例Plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>New item</key>
    <array>
        <dict>
            <key>value</key>
            <string>Data1</string>
            <key>key</key>
            <string>Tab1</string>
        </dict>
        <dict>
            <key>value</key>
            <string>Data2</string>
            <key>key</key>
            <string>Tab2</string>
        </dict>
    </array>
</dict>
</plist>

让我知道是否需要更多详细信息。

提前致谢!

最佳答案

就像加载和解析JSON一样。代替JSONSerialization,使用PropertyListSerialization

let urlString = "http://server.com/api"

let url = URL(string: urlString)
URLSession.shared.dataTask(with:url!) { (data, response, error) in
  guard error == nil else {
      print(error!)
      return
  } 
  do {         
      let plistDictionary = try PropertyListSerialization.propertyList(from: data!, format: nil) as! [String:Any]
      print(plistDictionary)
  } catch {
      print(error)
  }
}.resume()

关于ios - 如何从服务器读取Plist文件并直接使用它而不创建本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44964278/

相关文章:

iPhone 设备 UUID - PhoneGap

objective-c - 具有自定义 View 的 NSMenuItem 不会更新

objective-c - xcode构建失败没有解释

ios - Swift 数组元素映射

Swift3 SpriteKit : Shooting bullets at angles

ios - 为表格 View 单元格图像创建圆形图片

xcode - 在 iOS 上以调试器模式启动应用程序

iphone - 关于 UISearchBar :textDidChange of predicateWithFormat

objective-c - 哪个是最好的 SVG 到 NSBezierPath 库/类?

ios - 如何在 swift 3.0 中用 * 替换@之前的电子邮件 ID 文本