Swift,在另一个泛型函数

时间:2016-07-29 11:04:11

标签: swift generics

我是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。

1 个答案:

答案 0 :(得分:0)

对不起,我是个白痴。感谢Sulthan的评论,我希望实现我的RequestExecutor,并且我已经意识到它的执行对泛型有限制,即

func execute<T: Mappable>(request: Request) ...   

将我原来的帖子中的功能更改为

func performRequest<T: Mappable>(request: Request, stub: T?) -> Int...  

一切正常 再次抱歉,我是专注于代码的另一部分。感谢Sulthan让我走上正轨 希望这个答案对其他人有帮助:))