"使用struct属性作为字典键,"没有更多上下文的表达式是模糊的

Uma*_*raj 3 ios swift

我得到和例外:

没有更多上下文,表达式的类型是模糊的

使用以下代码:

struct Parameter { 
    static let Email = "email" 
    static let Password = "password" 
    static let IsFacebookUser = "isFacebookUser" 
}

let parameters : [String : AnyObject] = [Parameter.Email : email, Parameter.Password : password, Parameter.IsFacebookUser : false]
Run Code Online (Sandbox Code Playgroud)

它不接受bool类型,我不想更改我的数据类型.

这段代码有什么问题吗?

Sah*_*oor 6

您的电子邮件和密码是可选变量,您需要为字典提供非零值,因此应该使用!as后缀来解包它们试试这个

let parameters : [String : AnyObject] = [Parameter.Email : email!, Parameter.Password : password!, Parameter.IsFacebookUser : false]
Run Code Online (Sandbox Code Playgroud)

或者,您也可以这样做

email = emailTextField.text!
password = passwordTextField.text!
Run Code Online (Sandbox Code Playgroud)

另外,用enum替换你的struct.

enum Parameter: String {
    case Email: "emailKey"
    ...
}
Run Code Online (Sandbox Code Playgroud)

然后Parameter.Email.rawValue在创建字典时使用.