-1

GestureRecognizerとBlocksKitに問題があり、ビルドエラーが発生します。

基本的に、ジェスチャーでブロックを実行したいと思います。ここのドキュメントからコードをコピーしました...。

http://zwaldowski.github.com/BlocksKit/Documentation/Categories/UIGestureRecognizer(BlocksKit).html

...そしてこれまでのところ、毎回同じビルドエラーが発生するため、成功していません。私は周りを検索しましたが、私が抱えているのと同じ問題のあるものを見つけることができないので、ここの誰かが助けてくれることを望んでいました。

私が使用しているコードは...

UITapGestureRecognizer *singleTap = [UITapGestureRecognizer recognizerWithHandler:^(id sender) {
            NSLog(@"Single tap.");
        } delay:0.18];

私が受け取るエラーは...

/Users/JohnSlater/Desktop/iOS Apps/Flink/flink/ViewController.m:202:91: Incompatible block pointer types sending 'void (^)(id)' to parameter of type 'BKGestureRecognizerBlock' (aka 'void (^)(UIGestureRecognizer *, UIGestureRecognizerState, CGPoint)')

前もって感謝します

4

2 に答える 2

2

エラーメッセージのブロックのパラメータを確認してください。コードには、送信者という1つの引数があります。ただし、ブロックにはUIGestureRecognizer、UIGestureRecognizerState、およびCGPointが必要です。だから、それは次のように見えるはずです

[UITapGesture recognizerWithHandler:^(UIGestureRecognizer *recognizer, UIGestureRecognizerState UIGestureRecognizerStateEnded, CGPoint point){
}];
于 2012-09-30T00:26:49.687 に答える
0

UITapGestureRecognizer *singleTap = [UITapGestureRecognizer recognizerWithHandler:^(UIGestureRecognizer *sender, UIGestureRecognizerState state, CGPoint point ) { NSLog(@"Single tap."); } delay:0.18];

動作します。
理由はわかりませんが、ここでの例は間違っているようです。BKGestureRecognizerBlockは、ここで3つのパラメーターで宣言されています。だからあなたのリンカーは正しく不平を言っています。

于 2012-09-30T00:53:40.543 に答える