現在の MKMapView に注釈を追加しようとしたときに問題が発生しました。以下は、Core データに格納されているエンティティをフェッチし、現在表示されている MKMapView に注釈を付ける方法です。
私が直面している問題は、別のビュー コントローラーから追加された、新しく追加されたエンティティのみがマップ ビューで注釈付けされていることです。数週間前のデータなど、古いデータは取得されて配列に追加されますが、マップ ビューにはまったく注釈が付けられません。
さらに、データが新しく追加されたとしても、アプリケーションを閉じてから再びアプリを再度開くと、前のセッションのデータにも注釈が付けられません。
「クジラ」エンティティはすでに MKAnnotation プロトコルに準拠しています。
私はここで本当に混乱しており、問題の原因についての手がかりがありません。
- (void)getWhales:(NSInteger)days{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request setEntity:[NSEntityDescription entityForName:@"Whale" inManagedObjectContext:self.managedObjectContext]];
NSError *error = nil;
NSDateComponents *dateComponent = [[NSDateComponents alloc] init];
[dateComponent setDay:days];
NSDate *designatedDate = [[NSCalendar currentCalendar] dateByAddingComponents:dateComponent toDate:_today options:0];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"date > %@", designatedDate];
NSLog(@"date is %@", designatedDate);
[request setPredicate:predicate];
_whales = [self.managedObjectContext executeFetchRequest:request error:&error];
NSLog(@"number of whales found: %d", [_whales count]);
[self.map addAnnotations:_whales];
}