現在、作業中のアプリケーションに Venmo-iOS-SDK を使用しようとしています。SDK は Objective-C ですが、迅速なアプリで使用しようとしています。
補完 obj-c ブロックの構文を迅速に変換するのに問題があります。使いたい機能を実装したサンプルコードを見つけました。
- (IBAction)logInButtonAction:(id)sender {
[[Venmo sharedInstance] requestPermissions:@[VENPermissionMakePayments,
VENPermissionAccessProfile]
withCompletionHandler:^(BOOL success, NSError *error) {
if (success) {
NSLog("Success")
} else {
NSLog("Failure")
}
}];
}
私はこれをやってみました
@IBAction func loginButtonAction(sender: AnyObject){
Venmo.sharedInstance().requestPermissions([VENPermissionMakePayments, VENPermissionAccessPhone], withCompletionHandler: { (success: Bool, error: NSErrorPointer) -> Void in
if success{
println("Yes")
}else{
println("No")
}
})
}
しかし、エラーを取得します
「タイプ '([String], withCompletionHandler: (Bool, NSError) -> Void)' の引数リストで 'requestsPermissions を呼び出せません'
これは、ブロックの翻訳方法に問題がありますか? または、他の何か。Venmo-SDK を見ると、obj-C 関数は次のように定義されています。
- (void)requestPermissions:(NSArray *)permissions withCompletionHandler:(VENOAuthCompletionHandler)handler;
と
- (void)requestPermissions:(NSArray *)permissions withCompletionHandler:(VENOAuthCompletionHandler)handler;