如何在Swift中的方法中将字典作为参数传递?

时间:2014-09-29 09:05:16

标签: methods parameters swift alamofire

我在我的代码中创建了以下方法:

func SignIn(objDictionary:Dictionary<String,String>)
{
    //Body of method
}

我需要将以下字典作为参数传递给此方法,该方法定义如下:

let objSignInDictionary:Dictionary = ["email":emailTextField.text, "password":passwordTextField.text]

如何在上述方法中将此字典作为参数传递?

应该注意的是,方法在另一个类中,我通过创建其对象来调用该方法,如下所示:

let obj = Services()

SignIn在Services.swift类中定义 所以我试着把它称为

obj.SignIn(objSignInDictionary) 

但得到以下错误

"String!" is not identical to "String"

我错了,如何修复。我几天都被困在这里。

1 个答案:

答案 0 :(得分:12)

如果你在Xcode中点击objSignInDictionary,你会看到它被推断为[String : String!]。您可以通过明确设置objSignInDictionary类型:

来解决此问题
let objSignInDictionary:[String:String] = ["email":emailTextField.text, "password":passwordTextField.text]