如何在 Swift 中将 plist 作为字典获取? [英] How do I get a plist as a Dictionary in Swift?
问题描述
我正在使用 Apple 的新 Swift 编程语言,但遇到了一些问题...
I am playing around with Apple's new Swift programming language and have some problems...
目前我正在尝试读取 plist 文件,在 Objective-C 中,我将执行以下操作以将内容作为 NSDictionary 获取:
Currently I'm trying to read a plist file, in Objective-C I would do the following to get the content as a NSDictionary:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"];
NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];
如何在 Swift 中将 plist 作为字典获取?
How do I get a plist as a Dictionary in Swift?
我假设我可以通过以下方式获得 plist 的路径:
I assume I can get the path to the plist with:
let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist")
何时有效(如果正确?):如何将内容作为字典获取?
When this works (If it's correct?): How do I get the content as a Dictionary?
还有一个更一般的问题:
Also a more general question:
是否可以使用默认的 NS* 类?我想是的……还是我错过了什么?据我所知,默认框架 NS* 类仍然有效并且可以使用?
Is it OK to use the default NS* classes? I think so...or am I missing something? As far as I know the default framework NS* classes are still valid and alright to use?
推荐答案
在 swift 3.0 从 Plist 读取.
In swift 3.0 Reading from Plist.
func readPropertyList() {
var propertyListFormat = PropertyListSerialization.PropertyListFormat.xml //Format of the Property List.
var plistData: [String: AnyObject] = [:] //Our data
let plistPath: String? = Bundle.main.path(forResource: "data", ofType: "plist")! //the path of the data
let plistXML = FileManager.default.contents(atPath: plistPath!)!
do {//convert the data to a dictionary and handle errors.
plistData = try PropertyListSerialization.propertyList(from: plistXML, options: .mutableContainersAndLeaves, format: &propertyListFormat) as! [String:AnyObject]
} catch {
print("Error reading plist: (error), format: (propertyListFormat)")
}
}
阅读更多如何使用财产SWIFT 中的列表 (.PLIST).
这篇关于如何在 Swift 中将 plist 作为字典获取?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!