-1

どこでもマップビューを押すと、例外がキャッチされなかったためにマップが終了しました。

-[MapViewController handleGuesture]: 認識されないセレクターがインスタンス 0xa046cc0 に送信されました
2013-04-15 10:41:23.316 CabServiceProvider[912:c07] *** キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '-[MapViewController handleGuesture]: 認識されないセレクターがインスタンス 0xa046cc0 に送信されました'
Here is code which is causing this error.

- (void)viewDidLoad{
    [super viewDidLoad];
    [self.mapView.userLocation addObserver:self
                                forKeyPath:@"location"
                                   options:(NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld)  
                                  context:NULL];
    mapView.userTrackingMode=YES;
    [mapView setUserTrackingMode:MKUserTrackingModeFollow];
     UITapGestureRecognizer  *gr=[[UITapGestureRecognizer alloc]initWithTarget:self        action:@selector(handleGuesture)];
    gr.numberOfTapsRequired=1;
    [mapView addGestureRecognizer:gr]; 
}

- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer{
    if (gestureRecognizer.state != UIGestureRecognizerStateEnded)
    return;
    CLLocationCoordinate2D coordinate; //= annotationView.annotation.coordinate;
    NSLog(@"dropped at %f,%f", coordinate.latitude, coordinate.longitude);
    CGPoint touchPoint = [gestureRecognizer locationInView:mapView];
    coordinate = [mapView convertPoint:touchPoint toCoordinateFromView:mapView];
    NSLog(@"latitude  %f longitude %f",coordinate.latitude,coordinate.longitude);
}

このエラーが発生する理由を教えてください。

4

2 に答える 2

1

この行で確認してください:

UITapGestureRecognizer  *gr=[[UITapGestureRecognizer alloc]initWithTarget:self        action:@selector(handleGesture:)];

メソッドを呼び出すときに、間違ったスペルでも呼び出します。

于 2013-04-15T06:27:49.870 に答える
1

私が思うようにこの行を変更します。

UITapGestureRecognizer *gr=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleGuesture:)];
-------------------------------------------------------------------------------------------------------------^

引数を渡すときに追加:する必要があります。handleGuesture

チェックしてください

于 2013-04-15T06:16:51.563 に答える