【发布时间】:2011-03-16 06:07:42
【问题描述】:
一旦数据被解析,我正在尝试从一个单独的类加载注释。我通过 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 方法没有响应。
请指教。提前致谢!!
埃文
【问题讨论】:
-
NSMutableArray 是否可能在您将其传递给方法之前释放?你在哪里建立阵列?当您对哪些变量进行硬编码时,您能否再次详细解释一下究竟是什么工作?一步一步来?
-
当我用坐标对 loadOutAnnotation 函数进行硬编码并从 MapViewController.m 的 viewDidLoad 部分调用它时,将出现注释。如果我尝试从 ParseData.m 调用 loadOutAnnotation 函数,它不会出现。我添加了 didAddAnnotationViews 希望加载注释,但没有运气。 NSMutableArray 只是传递坐标,我可以验证通过 NSLog 传递给 loadOutAnnotation 方法。让我知道我是否可以提供更多信息。感谢您对此进行调查!
-
我认为很难弄清楚提供的代码量有什么问题。也许你可以把代码打包放在github之类的地方,或者把所有涉及的方法贴在这里。
-
我创建了一个示例项目供您查看。我已经在 AnnotationProblemViewController.m 的 viewDidLoad 中注释掉了 [self loadOutAnnotation]。如果您取消注释此部分,注释将起作用。该项目目前正在尝试从由应用程序委托初始化的 CallAnnotation 调用注释(我简化了示例应用程序的过程)。有两个类(MapAnnotation 和 MapAnnotationView)定义了注解的设置。如果你看到任何东西,请告诉我。谢谢! [链接] (github.com/johnse4/Loading-Annotations)
标签: ios annotations mapkit android-mapview