1

タップ ジェスチャ レコグナイザーを 1 週間追加してきましたが、他のすべてのアプリと同じようにこれを実行すると、アプリがクラッシュします。私は何かが欠けているに違いありませんが、私の人生では、それが何であるかを見つけることができません. このバグに関する十数件の SO 記事を読んできましたが、何も役に立ちません。

このコード:

@interface wwfpViewController ()
@property (nonatomic, strong) UIView * firstScreen;
@end

@implementation wwfpViewController

@synthesize firstScreen;

- (void)viewDidLoad {
    [super viewDidLoad];
    firstScreen=[[UIView alloc] initWithFrame:self.view.frame];
    [firstScreen setBackgroundColor:[UIColor redColor]];
    [self.view addSubview:firstScreen];

    UITapGestureRecognizer * tap=[[UITapGestureRecognizer alloc] initWithTarget:firstScreen action:@selector(onTap:)];
    [tap setNumberOfTapsRequired:1];
    [firstScreen addGestureRecognizer:tap];
}

- (void) onTap:(UIGestureRecognizer*) recogniser {
    NSLog(@"tap: %@",recogniser);
}

@end

次のエラーが生成されます。

2013-08-01 12:50:11.027 tyrionSwipe[27336:11303] -[UIView onTap:]: unrecognized selector sent to instance 0xe52c4a0
2013-08-01 12:50:11.029 tyrionSwipe[27336:11303] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView onTap:]: unrecognized selector sent to instance 0xe52c4a0'
*** First throw call stack:
(0x1c91012 0x10cee7e 0x1d1c4bd 0x1c80bbc 0x1c8094e 0x2dd85a 0x2dc99b 0x2de0df 0x2e0d2d 0x2e0cac 0x2d8a28 0x45972 0x45e53 0x23d4a 0x15698 0x1becdf9 0x1becad0 0x1c06bf5 0x1c06962 0x1c37bb6 0x1c36f44 0x1c36e1b 0x1beb7e3 0x1beb668 0x12ffc 0x295d 0x2885 0x1)
libc++abi.dylib: terminate called throwing an exception

誰でも助けることができますか?

編集:タイプミスをしました!おっとっと。タイプミスがなくても、まだこのエラーが発生しています。

4

3 に答える 3

0

ターゲットは firstScreen で、セレクターは wwfpViewController 内で定義されています。ターゲットを自分に変更する必要があります。firstScreen は UIView です。

-[UIView onTap:] は、定義されていないことについて不平を言っているものです。

于 2013-08-01T14:00:52.257 に答える