tldr; Swift 3: salta le opzioni param e tutto andrà bene.
JSONSerialization.jsonObject(with: data)
Spiegazione:
a Swift 3, la chiamata di funzione è
class func jsonObject(with data: Data, options opt: JSONSerialization.ReadingOptions = []) throws -> AnyObject
ReadingOptions è un gruppo di opzioni, l'intestazione per l'opzione Impostare il protocollo ha
/// 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 = []
Il option set docs are here
che significa che si può chiamare
JSONSerialization.jsonObject(with: data, options: [])
tuttavia, le opzioni già ha il default [] definiti nella definizione della funzione, in modo da poter saltare del tutto e chiamare
JSONSerialization.jsonObject(with: data)
fonte
2016-07-14 08:42:48
che sembra funzionare, può mi indichi tutta la documentazione sul perché posso passare [] quando si aspetta un'enumerazione? – markdb314
@ markdb314 stavo solo cercando un collegamento doc, datemi un secondo. – luk2302
@ markdb314 sfortunatamente non riesco a trovare alcun documento sul perché funzioni, ma puoi essere sicuro che è la strada da percorrere, guarda un'altra risposta dove le opzioni dovrebbero essere date e [] viene consegnato. Immagino che abbia qualcosa da fai con 'RawOptionSetType' che la ** struct ** (non enum)' NSKeyValueObservingOptions' è conforme a -> http://nshipster.com/rawoptionsettype/ – luk2302