Если условный оператор для значения возвращается из 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]
Если нет, вам нужно, скорее всего, перебрать этот массив, а затем проверить содержимое каждого индекса для результатов.