MKMapAnnotations didSelectAnnotationView没有响应

时间:2012-01-31 00:30:51

标签: xcode ios5 mkmapview mapkit mkannotationview

我正在创建一个应用程序,它从服务器提取数据并精确定位地图上的不同房屋。我的问题是它确实显示了注释,但是当我点击它们时它们没有响应      - (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view

我把注释放在一个数组中:

int s;
self.mapAnnotations = [[NSMutableArray alloc] init];

for(s=0; s < numberOfAnnotations; s++)
{
    //NSDictionary *dict2 = [parser objectWithString:[[arrayOfResults objectAtIndex:0] description]];

   CLLocationDegrees daLong = [[[[[arrayOfResults objectAtIndex:s] objectForKey:@"map"] objectForKey:@"longitude"] description] floatValue];
   CLLocationDegrees daLat = [[[[[arrayOfResults objectAtIndex:s] objectForKey:@"map"] objectForKey:@"latitude"] description] floatValue];

    /*self.customAnnotation = [[BasicMapAnnotation alloc] initWithLatitude:daLat andLongitude:daLong];
    [self.mapView addAnnotation:self.customAnnotation];*/

    BasicMapAnnotation *m = [[BasicMapAnnotation alloc] initWithLatitude:daLat andLongitude:daLong];
    [self.mapAnnotations addObject:m];


}

[self.mapView addAnnotations:self.mapAnnotations];
NSLog(@"this number of annotations %d", [self.mapAnnotations count]);

当我在viewDidLoad中创建一个单独的房子放置在地图上时,我也注意到了:

self.normalAnnotation = [[BasicMapAnnotation alloc] initWithLatitude:38 andLongitude:-90.2045];
self.normalAnnotation.title = @"                                                         ";
[self.mapView addAnnotation:self.normalAnnotation];

当我点击它时它确实有效,但通过数组的那些没有用。 任何人都可以帮我弄清楚它为什么没有响应?

1 个答案:

答案 0 :(得分:4)

那是因为注释应该有一个title来显示标注。在for循环中,设置title属性,就像使用self.normalAnnotation.title = @" "一样。