我正在开发一个社交媒体类型的应用程序,我想为用户实现阻止功能,但我遇到错误“无法转换类型'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)
}
}
}
答案 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
,然后将其作为第一个参数传递。