2015-05-17 2 views
0

Я новичок в Xcode и Свифта, и я пытаюсь сериализации данных JSON из URL, используя приведенный ниже код и получить ошибкуJSON сериализации данных в Swift

«NSJSONReadingOptions» не конвертируется в «NSJSONWritingOptions '

на линии

var jsonResult = NSJSONSerialization.dataWithJSONObject(data, options: NSJSONReadingOptions.MutableContainers, error: nil)! 

Я не могу видеть мою ошибку, из источников в Интернете другие используют один и тот же код и его работы?

let task = session.dataTaskWithURL(loginUrl!, completionHandler: { (data, response, error) -> Void in 
    if error != nil { 
    }else { 
     var jsonResult = NSJSONSerialization.dataWithJSONObject(data, options: NSJSONReadingOptions.MutableContainers, error: nil)! 
     println(jsonResult) 
    } 
}) 

task.resume(); 
+0

Вы вызываете 'dataWithJSONObject', который используется для сериализации массива/словаря в JSON, хранящегося в объекте NSData. Но вы хотите вызвать 'JSONObjectWithData', чтобы десериализовать JSON, хранящийся в' NSData', в массив/словарь. 'NSJSONReadingOptions' используется с' JSONObjectWithData'. Таким образом, проблема заключается не в 'NSJSONReadingOptions', а в том, что вы называете' dataWithJSONObject' вместо 'JSONObjectWithData'. – Rob

ответ

1

Читайте документы за dataWithJSONObject. Параметр options должен быть значением из перечисления NSJSONWritingOptions, а не перечислением NSJSONReadingOptions.

Но если ваша цель здесь состоит в том, чтобы преобразовать объект NSData в NSArray или NSDictionary, тогда проблема в том, что вы вызываете неправильный метод. Вы хотите использовать JSONObjectWithData, а не dataWithJSONObject.

+0

Спасибо .. Решите мою проблему – emabusi

+1

Отлично. Рад, что смог помочь. Не забудьте принять ответ. – rmaddy

+1

@Rob спасибо, я знаю, что делать – emabusi