0

現在の 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];
}
4

0 に答える 0