-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

看一下错误信息中块的参数。您的代码有一个参数,发件人。但是该块需要一个 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 回答