-1

所以我不确定这应该如何工作。我有一个名为 Map 的 NSManagedObject 子类。它是这样创建的:

- (void)mapView:(MKMapView *)mapView regionDidChangeAnimated:(BOOL)animated {
   // create map with below initializer
MKCoordinateRegion region = MKCoordinateRegionForMapRect(mapView.visibleMapRect);

   self.map = [Map mapWithName:nil: region:region inManagedObjectContext:self.managedObjectContext;
}

+ (Map *)mapWithName:(NSString *)mapName region:(MKCoordinateRegion)region inManagedObjectContext:(NSManagedObjectContext *)context {
    Map *aMap = [Map mapWithName:mapName inManagedObjectContext:context];
    aMap.centerLatitude = @(region.center.latitude);
    aMap.centerLongitude = @(region.center.longitude);
    aMap.latitudeDelta = @(region.span.latitudeDelta);
    aMap.longitudeDelta = @(region.span.longitudeDelta);

    return aMap;
}

我把 Map 对象放在这里,因为委托方法

- (void)mapViewDidFinishLoadingMap:(MKMapView *)mapView

并不总是被调用,但 regionDidChangeAnimated: 会。问题是,这可以在 NSManagedObjectContext 中创建 1-7 个地图对象。因此,当我进入下一个屏幕时,即使我只有一个 self.map 属性,我的 fetchedResultsController.fetchedObjects 中也会有 1-7 个地图对象,并用一堆相同的对象填充下一页上的 TableViewController。有一个更好的方法吗?我想我可以制作一个模仿 NSManagedObject 的常规 MapTemp : NSObject ,并且只在需要保存 Map 或其他东西时才创建 Map : NSManagedObject 。

想法?谢谢!

4

1 回答 1

-1

如果您不想要多个对象,那么为什么要创建它们
要么删除你不想要的那些,或者更好地更新现有的。

于 2012-08-18T06:10:11.373 回答