在 Swift 中使用未解析的标识符“参数”

Posted

技术标签:

【中文标题】在 Swift 中使用未解析的标识符“参数”【英文标题】:Use of unresolved identifier 'parameters' in Swift 【发布时间】:2014-11-22 19:34:07 【问题描述】:

所以我在尝试运行我的脚本时遇到了这个错误

使用未解析的标识符“参数”

这是获取 CSRF 令牌然后登录用户的代码

    var username = usernameField.text
    var password = passwordField.text

    var token = String()
    var parameters = String?()

    //Get CSRF token
    Alamofire.request(.GET, "https://localhost/api/csrf")
        .responseJSON(request, response, data, error) in
            var jsonParse = data as NSDictionary
            var responseJSON = JSON(jsonParse)

            if(responseJSON["success"]) == false
                println(responseJSON["error"])
            
            else
                let token = responseJSON["data"].string

                let parameters = [
                    "user": username,
                    "password": password,
                    "csrf": token
                ]
            

    

    Alamofire.request(.POST, "https://localhost/api/login", parameters: parameters)
        .responseJSON(request, response, JSON, error) in
            println(token)
            println(JSON)

    

考虑到我已经像这样启动它,我不明白为什么我不能访问范围之外的parameters

var parameters = String?()

有什么想法吗?

【问题讨论】:

【参考方案1】:

您在请求块之外定义了 参数。在您的请求块内,您定义一个常量变量,该变量只能在该块内访问。因此删除 let 并写:

parameters = [
                "user": username,
                "password": password,
                "csrf": token
            ]

我认为第二个请求应该在您得到第一个请求的响应后发出?如果是这样,请将第二个请求放在第一个请求的回调中。

编辑:“令牌”也有同样的问题,所以在这里做同样的事情。

【讨论】:

token也一样

以上是关于在 Swift 中使用未解析的标识符“参数”的主要内容,如果未能解决你的问题,请参考以下文章

在核心数据swift ios中使用未解析的标识符“模型”

Swift:函数中的 UIAlert - 使用未解析的标识符“存在”

iOS [Swift]:解析 Facebook 登录“使用未解析的标识符‘权限’”

Swift ui macos ProgressView 使用未解析的标识符'ProgressView'

使用未解析的标识符 'json' (Swift 3) (Alamofire)

Swift 2.3 pod 更新后使用未解析的标识符 Firebase 'FIR'