我在尝试将注释添加到当前的 MKMapView 时遇到问题。下面是我如何尝试获取存储在核心数据中的实体并将它们注释到当前显示的 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];
}