シンプルなマップビューがあります。方法があります
-(void)loadAndDisplayPois{
NSLog(@"loadAndDisplayPois");
if(mapView.annotations.count > 0)
[mapView removeAnnotations:mapView.annotations];
self.pois = [self loadPoisFromDatabase];
NSLog(@"self.pois.count: %i", self.pois.count);
[mapView addAnnotations:self.pois];
NSLog(@"mapView.annotations.count: %i",mapView.annotations.count);}
このメソッドが呼び出され、データをダウンロードしてデータベースに保存した後、ログが原因でメソッドが呼び出されると確信しています。ダウンロードを処理するクラスは、データをデータベースに保存した後に実行されます[self.senderObj performSelector:@selector(loadAndDisplayPois)];
。ここで、senderObjはMapViewControlllerです。pois配列からのカウントログは、最初にクリックした後に4を示しています。ただし、呼び出されないため、ビューに注釈viewForAnnotation
はありません(配列内の1つの注釈(私の現在の位置))。[テスト]ボタンをクリックしてメソッドを再度実行すると、マップ上のすべてが表示されます。
このviewForAnnotation
メソッドはviewWillAppear
、[テスト]ボタンをクリックした後とクリックした後に呼び出されます。
それは2日以来私を狂わせています。もうできません...