【问题标题】:Alamofire.request function is returning an error which says "extra argument in call"Alamofire.request 函数返回一个错误,上面写着“调用中的额外参数”
【发布时间】:2016-12-22 04:13:16
【问题描述】:
request = Alamofire.request(.GET, recipe.foodImageUrl!).validate(contentType: ["image/*"]).response(completionHandler: { request, response, data, err in
       if err == nil {
            let img = UIImage(data: data!)!
            self.foodRecipeImg.image = img
            FeedVC.imageCache.setObject(img, forKey: recipe.foodImageUrl!)

        }
 })

运行此代码时,会出现一个错误,提示调用中有一个额外的参数。浏览了其他答案后,我仍然找不到解决方案。

【问题讨论】:

    标签: ios swift3 alamofire


    【解决方案1】:

    试试这个:

    Alamofire 3:

    let strURL = recipe.foodImageUrl ! as String
    
        Alamofire.request(.GET, strURL).response { (request, response, data, error) in
             if error == nil {
                    let img = UIImage(data: data!)!
                    self.foodRecipeImg.image = img
                    FeedVC.imageCache.setObject(img, forKey: recipe.foodImageUrl!)
    
                }
        }
    

    Alamofire 4.0:

    Alamofire.request(strURL).response { response in // method defaults to `.get`
        if error == nil {
                        let img = UIImage(data: data!)!
                        self.foodRecipeImg.image = img
                        FeedVC.imageCache.setObject(img, forKey: recipe.foodImageUrl!)
    
                    }
    

    }

    【讨论】:

    • 不,那没用。错误仍然弹出,在调用中说额外的参数
    • 让 strURL = recipe.foodImageUrl !作为字符串
    • 并传递 strURL 而不是传递 recipe.foodImageURL!
    • 但这反过来不会做任何事情。它会缩短参数名称。我还是试了一下,还是弹出调用中的错误额外参数
    • 他正在使用 3.0 语法调用 4.0 API。因此,只需查看我在答案中附加的文件即可。更新语法,一切都会好的。
    【解决方案2】:

    请试试这个变种。 (更新)

    request = Alamofire.request(recipe.foodImageUrl!) 
      .response { 
        response in 
        let img = UIImage(data: response.data!)! 
        self.foodRecipeImg.image = img 
        FeedVC.imageCache.setObject(img, forKey: recipe.foodImageUrl!) 
      }
    

    【讨论】:

    • 你用的是4.0,请试试这个request = Alamofire.request(recipe.foodImageUrl!) .response { response in let img = UIImage(data: data!)! self.foodRecipeImg.image = img FeedVC.imageCache.setObject(img, forKey: recipe.foodImageUrl!) }
    • 当我这样做时,出现的唯一错误是“使用未解析的标识符‘数据’”
    • @Shaan 请将data 替换为response.data
    • @Shaan 你能粘贴你最终的工作代码吗?将帮助人们关注主题或寻找解决方案。
    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 2022-06-30
    • 1970-01-01
    • 2015-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    相关资源
    最近更新 更多