一尘不染

如何在Swift中将plist作为字典?

swift

我在玩苹果的新 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 类仍然有效并且可以使用吗?


阅读 415

收藏
2020-07-07

共1个答案

一尘不染

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)

2020-07-07