Попытка взять NSSDictionary, который содержит все мои местоположения, заголовки и субтитры, и перечислить их и добавить их в мой mapView. Первая часть выглядит хорошо;Я читаю Plist и могу получить доступ к различным частям.У меня проблемы с выполнением перечисления.
NSLog, запрашивающий заголовок, правильно сообщает об этом свойстве в консоль.
В конце концов, я не вижу контактов.Кроме того, после вызова NSLog:
NSLog(@"My %i annotations are: %@", self.mapView.annotations.count, self.mapView.annotations);
я получаю в ответ:
"My 1 annotations are: (
"<MKPointAnnotation: 0xd0151f0>" )
, который выглядит как one ячейка памяти для one аннотация. Вздох .
Я уверен, что делаю что-то простое и неправильное, но буду признателен за любую помощь.Я искал весь день и видел некоторые вещи, которые кажутся здесь ответами, но не что-то, что помогает мне в этой конкретной конструкции.
Заранее спасибо.
Следующий код запускается в главном viewController, первый видимый метод вызывается в конце ViewDidLoad.
-(void) loadUpLocations{
NSPropertyListFormat format;
NSString *errorDesc=nil;
//make path to plist in bundle
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"locations2" ofType:@"plist"];
//fill data object with contents of file
NSData *myData = [[NSData alloc] initWithContentsOfFile:plistPath];
myLocations=[NSPropertyListSerialization propertyListFromData:myData
mutabilityOption:NSPropertyListMutableContainersAndLeaves
format:&format
errorDescription:&errorDesc];
if (!myLocations) {
NSLog(@"Error reading Plist: %@ format: %@", errorDesc,format);
}
myAnnotation=[[MKPointAnnotation alloc]init];
for (NSString *loc in myLocations) {
NSDictionary *value =[myLocations objectForKey:loc];
//NSLog(@"Loc is equal to: %@",loc);
//loop through and make annotations
myAnnotation.coordinate = CLLocationCoordinate2DMake(
[[value objectForKey:@"latitude"] doubleValue],
[[value objectForKey:@"longitude"] doubleValue]);
myAnnotation.title = [value objectForKey:@"title"];
myAnnotation.subtitle = [value objectForKey:@"subtitle"];
NSLog(@"%@",myAnnotation.title);
[self.mapView addAnnotation:myAnnotation];
}
NSLog(@"My %i annotations are: %@", self.mapView.annotations.count, self.mapView.annotations);
}
- (IBAction)zoomToLocation:(id)sender {
//set center for zoom
MKCoordinateRegion region;
region.center=CLLocationCoordinate2DMake(33.75070416856952, -84.37034368515015);;
//set level of zoom
MKCoordinateSpan span;
span.latitudeDelta=.03;
span.longitudeDelta=.03;
region.span=span;
[mapView setRegion:region animated:YES];
}
// This gets called every time an annotation is in the map view
- (MKAnnotationView *)mapView:mapView viewForAnnotation:annotation{
NSLog(@"in annotationsView");
MKPinAnnotationView *myPins=[[MKPinAnnotationView alloc]
initWithAnnotation:annotation
reuseIdentifier:@"myPins"];
myPins.animatesDrop=YES;
return myPins;
}