2016-02-01 2 views
1

В следующей части моего кода я получаю этот вопросНевозможно вызвать значение типа без функции «NSDictionary»

Невозможно вызвать значение типа без функции «NSDictionary»

do { 
    var json = try NSJSONSerialization.JSONObjectWithData(data, options: .MutableContainers) as? NSDictionary 
     if let parseJSON = json { 
     var resultValue: String = parseJSON ("status") as String! 
     print ("result:\(resultValue)")   
     if resultValue == "success" { 
      // Login is successful 
      NSUserDefaults.standardUserDefaults().setBool(true, forKey: ("isUserLoggedIn")) 
      NSUserDefaults.standardUserDefaults().synchronize() 
      self.dismissViewControllerAnimated(true, completion: nil) 
     } 
     }  
    } catch let error as NSError{ 
    print("error=\(error)")    
} 

Я уже пытался разместить оператор if вне инструкции do catch, но затем я получил вопрос «Использование неразрешенного идентификатора» json '

+2

Используйте '[]' для доступа к элементу словаря, а не '()' – dan

ответ

1

Эта часть вашего кода:

String = parseJSON ("status") 

пытается вызвать массив или (в данном случае) словарь как функцию. Синтаксис вы ищете использование [] вместо ():

String = parseJSON["status"] 

Вы также не должны использовать скобки в пользовательском коде по умолчанию:

forKey: "isUserLoggedIn") 

, если вы не будете осторожны с кронштейнами вы начинать определять кортежи и запускать другие проблемы ...

+0

Apple может изменить сообщение об ошибке. Например: «Вы пытаетесь использовать словарь, как если бы это была функция». – gnasher729

Смежные вопросы