2017-07-07 54 views
1

我工作的一個項目,我有我通過plist文件拿到了服務器上的一些設置,我想讀這個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> 

讓我知道,如果需要這方面的更多細節。

在此先感謝!

+2

看一看https://stackoverflow.com/questions/1072308/parse-plist-nsstring-into-nsdictionary一個的ObjectiveC解決 – mttrb

+0

是對的ObjectiveC它的不錯,但我們怎樣才能在做同樣的Swift3有什麼想法? – CodeChanger

回答

1

與加載和解析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() 
+0

偉大讓我試試吧。感謝您的快速回答:) – CodeChanger

+0

是的,它的工作正常。謝謝你一次 – CodeChanger

2

你需要使用NSPropertyListSerialization類來解析你的Data響應Dictionary

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() 
+1

Puneet其工作正常。謝謝(Y) – CodeChanger

相關問題