2016-07-29 7 views
1

Swift에서 예쁜 초보자입니다 (Java에서 제공). 다른 제네릭 함수에서 제네릭 함수를 호출하려고 할 때 꽤 많은 두통이있었습니다. 더 구체적으로 나는 표준 오류 메시지가 : "일반 매개 변수 T 유추 수 없습니다". 이미 꽤 많은 썼다Swift는 다른 일반 함수에서 generic 함수를 호출합니다.

//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() 
} 

:
나는 그렇게 희망 누군가가 나에게 나는 그것이 작동하는지 확인하기 위해이 코드를 수정하는 방법을 해결책, 즉 줄 수있는, 내가 어떤 언어의 세부 사항을 알고하지 않을 수 있다고 가정 해결책을 찾아내는 것을 시도하는 Google에있는 시간, 그러나 아무것도를 찾아 내지 않았다. T 대신 T.Type을 사용하려고 시도 했습니까? 매개 변수는 있지만 행운은 없습니다. xCode 7.3.1에서 Swift 2.2.1을 사용하고 있습니다.

+2

완전한 예를 제공해 주시겠습니까? – Sulthan

답변

0

미안하지만, 나는 바보입니다. 덕분에 내 RequestExecutor의의 실현을 바라 Sulthan의 언급하고 나는 그것의, 즉

내 원래의 게시물의 기능 변경 후
func execute<T: Mappable>(request: Request) ... 

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

로, 제네릭에 제약이 실행 실현했습니다 모두 잘 작동합니다.
죄송합니다. 다시 한 번 코드의 다른 부분에 집중해야했습니다. 저를 올바른 길로 인도 해준 Sulthan에게 감사드립니다.
이 답변이 다른 사람에게 도움이되기를 바랍니다 :)

관련 문제