我希望在Swift(2.0)中反序列化JSON时不传递任何选项.我最初尝试过:
NSJSONSerialization.JSONObjectWithData(data, options: nil)
Run Code Online (Sandbox Code Playgroud)
但那不编译,我得到错误:
类型NSJSONReadingOptions不符合协议NilLiteralConvertible
枚举NSJSONReadingOptions没有任何"无"选项,所以如果我不想要任何这些选项,该怎么办?
luk*_*302 20
在swift 2中,您应该使用空数组[]
来指示no options
:
NSJSONSerialization.JSONObjectWithData(data, options: [])
Run Code Online (Sandbox Code Playgroud)
tldr; Swift 3:跳过选项参数,一切都会好的.
JSONSerialization.jsonObject(with: data)
Run Code Online (Sandbox Code Playgroud)
说明:
在swift 3中,函数调用是
class func jsonObject(with data: Data, options opt: JSONSerialization.ReadingOptions = []) throws -> AnyObject
Run Code Online (Sandbox Code Playgroud)
ReadingOptions是一个选项集,Option Set协议的标题有
/// When you need to create an instance of an option set, assign one of the
/// type's static members to your variable or constant. Alternately, to create
/// an option set instance with multiple members, assign an array literal with
/// multiple static members of the option set. To create an empty instance,
/// assign an empty array literal to your variable.
///
/// let singleOption: ShippingOptions = .priority
/// let multipleOptions: ShippingOptions = [.nextDay, .secondDay, .priority]
/// let noOptions: ShippingOptions = []
Run Code Online (Sandbox Code Playgroud)
这意味着你可以打电话
JSONSerialization.jsonObject(with: data, options: [])
Run Code Online (Sandbox Code Playgroud)
但是,选项已经在函数定义中定义了默认[],因此您可以完全跳过它并调用
JSONSerialization.jsonObject(with: data)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7669 次 |
最近记录: |