カスタム注釈を含むマップビューを表示する機能を iPad アプリに実装しています。何らかの理由で、 - (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id ) アノテーション メソッドは、マップが読み込まれてから 1 ~ 2 秒後に呼び出されます。
問題は、ピンがロードされる前にマップビューから別のビューに移動すると、アプリがアクセス不良でクラッシュすることです。したがって、この 1 ~ 2 秒の遅延は存在しないはずです。
特別なことは何も起こっていません。表示するピンはわずか (3 つ) しかないので、パフォーマンスの問題にはなりません。
その解決策があれば教えてください。
コード:
マップビューコントローラー
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
[self setTitle:self.pageTitle];
[self.navigationController.navigationBar setTintColor:[UIColor lloydsNavBarTintColour]];
[self.mapView setDelegate:self];
MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = 53.566414;
region.center.longitude = -0.922852;
region.span.longitudeDelta = 10.0f;
region.span.latitudeDelta = 10.0f;
[self.mapView setRegion:region animated:YES];
ACNEfficiencyAnnotation *annotation = [[ACNEfficiencyAnnotation alloc]init];
[annotation setCoordinate:CLLocationCoordinate2DMake(55.5783462524414,-4.39453077316284)];
[self.mapView addAnnotation:annotation];
}
- (MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>) annotation
{
self.annotationView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"pin"];
return self.annotationView;
}
注釈の実装:
@interface ACNEfficiencyAnnotation : NSObject <MKAnnotation>
{
}
@property (nonatomic, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, copy) NSString *title;
@property (nonatomic, copy) NSString *subtitle;
@property (nonatomic, strong) ACNEfficiencyLocation *location;
@end
@implementation ACNEfficiencyAnnotation
@synthesize coordinate;
@synthesize title;
@synthesize subtitle;
@synthesize location;
@end