Swift 无法转换类型为';Int?&x27;到预期的参数类型';字符串';

Swift 无法转换类型为';Int?&x27;到预期的参数类型';字符串';,swift,Swift,我正在开发一个社交媒体类型的应用程序,我想为用户实现阻止功能,但遇到一个错误“无法将'Int'类型的值转换为预期的参数类型'String'” 下面是我的代码示例 我首先声明了当前用户ID和页面用户ID var currentUserId: Int! var userPageId: Int! 然后是给出错误的主代码 self.userHelper.checkBanUser(with: userPageId, toUser: defaults.string(forKey: "userId")

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

下面是我的代码示例 我首先声明了当前用户ID和页面用户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)

            }



    }
}

在需要字符串的地方传递一个Int。请尝试以下方法:


self.userHelper.checkBanUser(带“\(userPageId)”,toUser:defaults.string(forKey:“userId”)!
您的方法:
func checkBanUser(带fromUser:string,toUser:string,completionHandler:@escaping((isResponse:Bool)->Void))
Int?
作为第一个参数


您需要更改传递第一个参数的方式,并传递
字符串,而不是
Int?
。使用:
String(userPageId)
从用户
转换为
字符串
,然后将其作为第一个参数传递。

请向我们展示方法
checkBanUser
?或者至少它的接口I刚刚更新了问题。该函数将
字符串
作为第一个参数,而不是
Int?