无法转换'Int?'类型的值预期参数类型'String'

时间:2017-07-18 18:35:48

标签: swift

我正在开发一个社交媒体类型的应用程序,我想为用户实现阻止功能,但我遇到错误“无法转换类型'Int的值?'预期参数类型'String'“

下面的

是我的代码示例     我首先声明了当前的用户ID和Pageuser ID

var currentUserId: Int!
var userPageId: Int!

然后是给出错误的主要代码

  self.userHelper.checkBanUser(with:  userPageId, toUser: defaults.string(forKey: "userId")!) { (data) in

        if data {
            self.blockLabel.isHidden = false
        }
        else {
            //
        }
    }

错误来自“userPageID”

更新。这是检查被禁用户的功能

 func checkBanUser(with fromUser: String,toUser: String,completionHandler : @escaping ((_ isResponse : Bool) -> Void)) {

    let urlRequest = String(format: "%@%@",BASE_BACKEND_URL,ENDPOINT_CHECK_BANN)

    Alamofire.request( urlRequest,method: .post, parameters: ["X-API-KEY": API_GENERAL_KEY,"fromUser":fromUser,"toUser":toUser])
        .responseJSON { response in

             let itemz = response.result.value as! NSDictionary!

             let resp = itemz?.value(forKey: "respon") as! String

            if (resp == "banned"){

                completionHandler (true)

            } else {

                completionHandler (false)

            }



    }
}

2 个答案:

答案 0 :(得分:0)

你需要传递一个需要字符串的Int。试试这个:

self.userHelper.checkBanUser(with: "\(userPageId)", toUser: defaults.string(forKey: "userId")!)

答案 1 :(得分:0)

您的方法:func checkBanUser(with fromUser: String,toUser: String,completionHandler : @escaping ((_ isResponse : Bool) -> Void))Int?作为第一个参数。

您需要更改传递第一个参数的方式并传递String而不是Int?。使用:String(userPageId)fromUser投射到String,然后将其作为第一个参数传递。