我在玩苹果的新 Swift 编程语言,遇到了一些问题…
当前,我正在尝试读取plist文件,在Objective-C中,我将执行以下操作以将内容作为NSDictionary获取:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Config" ofType:@"plist"]; NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:filePath];
如何在Swift中将plist作为字典?
我假设我可以通过以下方式获取plist的路径:
let path = NSBundle.mainBundle().pathForResource("Config", ofType: "plist")
当这可行时(如果正确的话):如何将内容作为字典?
还有一个更笼统的问题:
是否可以使用默认的 NS ** 类?我想是…还是我错过了什么?据我所知,默认框架 **NS 类仍然有效并且可以使用吗?
在 Swift 3.0中, 从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)。