阿拉莫火 4.0 "extra argument 'method' in call" 包裹在静态函数中时



我正在编写一个在 Swift 3/Xcode 8 中包含 Alamofire 网络请求的方法。当包装在标准函数中时,以下代码块编译时没有错误:

func registerUser(firstName: String, lastName: String, email: String, username: String, password: String, profilePicture: String, completion: @escaping(JSON?) -> ()) {
    let params: [String:Any]? = [
        "first_name" : firstName,
        "last_name" : lastName,
        "email" : email,
        "username" : username,
        "password" : password,
        "profile_pic" : profilePicture
    ]
    Alamofire.request("(baseURL)/users/create", method: .post, parameters: params, encoding: JSONEncoding.default, headers: nil).responseJSON { response in
        switch response .result {
        case .success(let value) :
            completion(JSON(value))
        case .failure(let error) :
            let error = error as Error
            print(error.localizedDescription)
            completion(nil)
        }
    }
}

但是,当我使此函数静态时,我收到错误"调用中的额外参数'方法'"。我已经尝试了具有类似问题的帖子中列出的解决方案,但没有积极的结果。知道可能导致此问题的原因吗?

问题暂时

解决。这是一个范围问题,baseURL变量不在方法内。以下内容将为我构建。

func registerUser(firstName: String, lastName: String, email: String, username: String, password: String, profilePicture: String, completion: @escaping(JSON?) -> ()) {
    let baseURL = "url"
    let params: [String:Any]? = [
        "first_name" : firstName,
        "last_name" : lastName,
        "email" : email,
        "username" : username,
        "password" : password,
        "profile_pic" : profilePicture
    ]
    Alamofire.request("(baseURL)/users/create", method: .post, parameters: params, encoding: JSONEncoding.default, headers: nil).responseJSON { response in
        switch response .result {
        case .success(let value) :
            completion(JSON(value))
        case .failure(let error) :
            let error = error as Error
            print(error.localizedDescription)
            completion(nil)
        }
    }
}

最新更新