我想從一個單獨的類加載註釋一旦數據已被解析。數據解析正確,我通過NSLog。我將數據發送給負責加載MKMapView的類。這個類接收正確的數據。iOS MapKit didAddAnnotationViews方法不叫
下面是對於解析我的數據的類(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是否可能在您將它傳遞給方法之前釋放?你在哪裏建立陣列?你能否再詳細解釋一下,當你硬編碼什麼變量時,什麼工作正確?一步步? – 2011-03-16 06:48:14
當我使用座標對loadOutAnnotation函數進行硬編碼並將其稱爲MapViewController.m的viewDidLoad部分時,將出現註釋。如果我嘗試從ParseData.m中調用loadOutAnnotation函數,它將不會出現。我添加了didAddAnnotationViews來希望加載註釋,但沒有運氣。 NSMutableArray只是傳遞我可以驗證的座標通過NSLog傳遞給loadOutAnnotation方法。如果有更多我能提供的信息,請告訴我。感謝您查看這個! – 2011-03-16 07:32:39
我認爲很難弄清楚提供的代碼量有什麼問題。也許你可以打包代碼,並將其放在github上,或者在這裏發佈所有涉及的方法。 – 2011-03-16 07:53:59