Je veux juste mettre en œuvre une petite fonction qui permet au système d'obtenir un emplacement sur MKMapView
où l'utilisateur a touché. J'ai écrit un code comme suit:obtenir la latitude et la longitude d'un point dans MKMapView?
#import "UIViewTouch.h"
@implementation UIViewTouch
@synthesize viewTouched;
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *) event{
NSLog(@"Hit Test");
NSLog(@"x = %f, y = %f", point.x, point.y);
MKMapView *mapView = (MKMapView *) [self.subviews objectAtIndex:0];
CLLocationCoordinate2D coordinate = [mapView convertPoint:point toCoordinateFromView:self];
NSLog(@"Lat = %f, Lng = %f", coordinate.latitude,coordinate.longitude);
//MapAnnotation is a custom class and confirms to MKAnnotation.
MapAnnotation *annotation = [[MapAnnotation alloc] initWithCoordinate:coordinate];
[mapView addAnnotation:annotation];
return [super hitTest:point withEvent:event];
}
- (BOOL) pointInside:(CGPoint)point withEvent:(UIEvent *)event{
return [super pointInside:point withEvent:event];
}
@end
Il peut fonctionner correctement si je ne fais pas une annotation sur le MKMapView
, sinon l'application va lancer une exception:
en raison de l'application Mettre fin exception uncaught 'NSInvalidArgumentException', raison: '- [TESTViewController openCallout:]: sélecteur non reconnu envoyé à l'instance 0x6b60180'
Toutes les idées?
Merci beaucoup!