[英]Cannot convert value of type '[String : Any]' to expected argument type 'String'
[英]Cannot convert value of type '[String:Any]?' to expected argument type '_?'
P和R是通用类型
open func route<P,R>(url:URL , param : P? ) -> R?{
guard let s = url.scheme ,let h = url.host else{
#if DEBUG
print("url error")
#endif
return nil
}
let urlString = "\(s)://\(h)\(url.path)"
guard let t = self.urlTaskMap[urlString] as? RoyTaskClosure<P,R> else {
print("closure unmatched,url -> \(urlString)")
return nil
}
let returnValue = t(param)
return returnValue
}
当我像
public func viewController(url:URL,param:[String:Any]?) -> RoyProtocol?{
if let vc = self.route(url: url, param: param){
return vc
}
return nil
}
Xcode向我显示错误消息
Cannot convert value of type '[String:Any]?' to expected argument type '_?'
神! 有人可以告诉我如何解决吗?
我找到了解决方案。用这个替换您的方法
public func viewController(url:URL,param:[String:Any]?) -> RoyProtocol?{
let vc: RoyProtocol? = self.route(url: url, param: param)
return vc
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.