我是Swift的新手(来自Java)。当我试图从另一个泛型函数调用泛型函数时,我遇到了很多麻烦。更具体地说,我得到标准错误消息:“无法推断通用参数T” 我假设我可能不知道一些语言细节,所以希望有人可以给我一个解决方案,即我如何纠正这些代码使其有效:
//Second parameter is workaround for error no generic parameter in function signature
func performRequest<T>(request: Request, stub: T?) -> Int {
let result: T? = requestExecutor.execute(request)
return request.getId()
}
我已经花了很多时间在谷歌搜索解决方案,但没有找到任何东西。我还尝试使用T.Type代替T?在参数,但没有运气。我在xCode 7.3.1中使用Swift 2.2.1。
答案 0 :(得分:0)
对不起,我是个白痴。感谢Sulthan的评论,我希望实现我的RequestExecutor,并且我已经意识到它的执行对泛型有限制,即
func execute<T: Mappable>(request: Request) ...
将我原来的帖子中的功能更改为
func performRequest<T: Mappable>(request: Request, stub: T?) -> Int...
一切正常 再次抱歉,我是专注于代码的另一部分。感谢Sulthan让我走上正轨 希望这个答案对其他人有帮助:))