我正在尝试在解析数据后从单独的类加载注释。数据正确解析,我通过NSLog进行了解析。我将数据发送到负责加载MKMapView的类。该类接收正确的数据。
以下是解析我的数据的类的代码(ParseData.m):
AnnotationsTest *loadFriend = [[AnnotationsTest alloc] init];
[loadFriend loadOutAnnotations:friendFound];
[loadFriend loadOutAnnotationsAgain];
[loadFriend release];
在我的第二个类(MapViewController.m)中调用的方法:
-(void)loadOutAnnotations:(NSMutableArray *)friendData
使用以下代码:
CLLocationCoordinate2D workingCoordinate;
workingCoordinate.latitude = [[friendData objectAtIndex:5] floatValue];
workingCoordinate.longitude = [[friendData objectAtIndex:4] floatValue];
MapAnnotation *appleStore1 = [[MapAnnotation alloc] initWithCoordinate:workingCoordinate];
[appleStore1 setTitle:@"Title"];
[appleStore1 setSubtitle:@"subtitle"];
[appleStore1 setUserData:[friendData objectAtIndex:6]];
[appleStore1 setAnnotationType:iCodeBlogAnnotationTypeApple];
[self.mapView addAnnotation:appleStore1];
最后,这是我的代码来响应addAnotation事件(MapViewController.m):
- (void)mapView:(MKMapView *)mapViews didAddAnnotationViews:(NSArray *)views {
id myAnnotation = [mapViews.annotations objectAtIndex:0];
[mapViews selectAnnotation:myAnnotation animated:YES];
NSLog(@"didAddAnnotationViews is called");}
如果我对变量进行硬编码,那么注释将完全加载,不通过该方法传递NSMutableArray,并调用MapViewController类viewDidLoad部分中的方法。当我尝试调用该方法从另一个类添加注释时,didAddAnnotationViews方法不响应。
请指教。在此先感谢!!
埃文
答案 0 :(得分:3)
所以我查看了你的代码,这是预期的行为:地图注释只是注释的抽象表示。您必须“手动”将其添加到地图中。地图THEN要求代表使用它来显示注释的VIEW。因此,当您不将它添加到地图时,它就不会出现了:)