一尘不染

如何在Swift 3中从数据读取属性列表

swift

我正在尝试property listDataSwift 3中读取一个,但我无法实现。

我尝试过这样的事情:

let datasourceDictionary = try! PropertyListSerialization.propertyList(from: data!, options: [PropertyListSerialization.ReadOptions], format: nil) as! Dictionary

和我得到这个错误:

无法将类型“ PropertyListSerialization.ReadOptions.Type”(也称为“
PropertyListSerialization.MutabilityOptions.Type”)的值转换为预期的元素类型“
PropertyListSerialization.MutabilityOptions”

然后,我尝试了类似Swift 1.2的操作:

let datasourceDictionary = try! PropertyListSerialization.propertyList(from: data!, options: [PropertyListSerialization.MutabilityOptions.immutable], format: nil) as! Dictionary

我得到了这个错误:

‘immutable’不可用:使用[]构造一个空选项集

然后我尝试了这个:

let datasourceDictionary = try! PropertyListSerialization.propertyList(from: data!, options: [], format: nil) as! Dictionary

我得到这个错误:

‘[Any]’不能转换为’PropertyListSerialization.ReadOptions’(aka’PropertyListSerialization.MutabilityOptions’)

如何property list在Swift 3中从`Data中读取文件,或者怎么做?


阅读 274

收藏
2020-07-07

共1个答案

一尘不染

Dictionary 是一种通用类型,需要键和值的类型信息。

使用Dictionary<String,Any>或更短[String:Any]

let datasourceDictionary = try! PropertyListSerialization.propertyList(from:data!, format: nil) as! [String:Any]

options参数可以省略。

2020-07-07