2017-12-16 14 views
0

Swift 4를 사용하고 있으며 Coinbase의 SDK를 통해 OAuth를 사용하려고합니다.Coinbase iOS SDK 완성 블록

이 내가의 OAuth를 완료하기 마지막 단계를 호출하고있어 방법은 다음과 같습니다

CoinbaseOAuth.finishAuthentication(for: url, clientId: Constants.CLIENT_ID, clientSecret: Constants.CLIENT_SECRET, completion: { (result : AnyObject?, error: NSError?) -> Void in 

    } as! CoinbaseCompletionBlock) 

내가 먼저 내가 as! Coinbase CompletionBlock을 가지고 있지 않습니다를 입력하지만, 엑스 코드는 불평 내가 추가 할 필요하다고합니다.

나는 완료 블록 타입 볼 수있는 방법 서명 보았을 때 :

+ (void)finishOAuthAuthenticationForUrl:(NSURL *)url 
           clientId:(NSString *)clientId 
          clientSecret:(NSString *)clientSecret 
          completion:(CoinbaseCompletionBlock)completion; 

그래서 내가 좀 더 깊이 파고 CoinbaseCompletionBlock 정의를 살펴 보자

typedef void (^CoinbaseCompletionBlock)(id response, NSError *error);

내가 시도 코드를 실행하면 도움이되지 않는 오류 메시지가 나타납니다. enter image description here

누군가이 문제를 일으키는 이유를 알 수 있습니까?

답변

0

캐스트가 있어서는 안됩니다. 완료 핸들러 매개 변수에 유형이 필요하지 않습니다. 이 작업을해야합니다 :

CoinbaseOAuth.finishAuthentication(for: url, clientId: Constants.CLIENT_ID, clientSecret: Constants.CLIENT_SECRET, completion: { (result, error) in 

}) 

그리고 당신은 드롭 할 수 있어야한다 completion:

CoinbaseOAuth.finishAuthentication(for: url, clientId: Constants.CLIENT_ID, clientSecret: Constants.CLIENT_SECRET) { (result, error) in 

}