无法调用非函数类型的值'NSDictionary'

时间:2016-02-01 14:03:02

标签: ios swift

在我的代码的以下部分中,我遇到了问题

  

无法调用非函数类型'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'

1 个答案:

答案 0 :(得分:1)

这部分代码:

String = parseJSON ("status")

尝试将数组或(在本例中)字典作为函数调用。您要查找的语法使用[]而不是()

String = parseJSON["status"]

您也不应该在用户默认代码中使用括号:

forKey: "isUserLoggedIn")

如果您不小心使用括号,则会开始定义元组并遇到其他问题......