Если условный оператор для значения возвращается из NSJSONSerialization

1 Luke [2016-12-04 06:44:00]

У меня возникла проблема с условным выражением для значения, возвращаемого из NSJSONSerialization. Я пытаюсь выяснить, вошел ли пользователь в систему. JsonData возвращает значение userStatus, которое должно быть либо loggedIn, либо notLoggedIn. Когда я пытаюсь выполнить оператор "if", я получаю следующую ошибку:

Невозможно подстроить значение типа [[String: AnyObject] с индексом типа String.

Любая помощь будет принята с благодарностью.

У меня есть следующий код:

do {
    let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options: []) as! [[String:AnyObject]]
    let userStatus = jsonData["userStatus"] as! String
    if userStatus == "loggedIn" {
        print("The user is loggedIn")
    } else {
        print("The user is not loggedIn")
    }
} catch {
    print("Error...")
}

ios swift2


1 ответ


1 Решение Josh Hamet [2016-12-04 06:54:00]

Вы принуждаете сериализацию к типу массива словарей. Поэтому вы не можете индексировать массив со строкой, поэтому компилятор бросает ошибку.

Поэтому, если тип данных должен быть словарем, вам необходимо изменить тип

[String: AnyObject]

Если нет, вам нужно, скорее всего, перебрать этот массив, а затем проверить содержимое каждого индекса для результатов.