Ios 如何从服务器读取Plist文件并直接使用它而不创建本地文件?
我正在做一个项目,我在服务器上有一些设置,我通过Plist文件获得了这些设置,我想在不创建任何本地副本的情况下读取这个Plist文件 需要将此设置存储在字典中,而不是本地Plist文件中 知道我们怎么做吗 样本列表如下所示:Ios 如何从服务器读取Plist文件并直接使用它而不创建本地文件?,ios,objective-c,swift3,Ios,Objective C,Swift3,我正在做一个项目,我在服务器上有一些设置,我通过Plist文件获得了这些设置,我想在不创建任何本地副本的情况下读取这个Plist文件 需要将此设置存储在字典中,而不是本地Plist文件中 知道我们怎么做吗 样本列表如下所示: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyL
<?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>
新项目
价值
数据1
钥匙
表1
价值
数据2
钥匙
表2
如果需要更详细的信息,请告诉我
提前谢谢 您需要使用类从对字典的响应中解析数据
let url:URL = URL(string: "")! // URL to fetch plist
let urlSession:URLSession = URLSession(configuration: URLSessionConfiguration.default)
urlSession.dataTask(with: url) { (data:Data?, response:URLResponse?, error:Error?) in
guard let data = data else {
return
}
let plistDict = try? PropertyListSerialization.propertyList(from: data, options:.mutableContainers, format: nil)
guard let dict = plistDict else {
print("Error in parsing")
return
}
print(dict)
}.resume()
这与加载和解析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()
看看Objective-C解决方案是的,Objective-C很好,但我们如何在Swift3中实现同样的目标?好的,让我试试。感谢您的快速回答:)