-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 プロパティが 1 つしかない場合でも、fetchedResultsController.fetchedObjects に 1 ~ 7 個のマップ オブジェクトが含まれ、次のページの TableViewController に同じオブジェクトの束が読み込まれます。これを行うより良い方法はありますか?通常の MapTemp : NSObject を作成して NSManagedObject を模倣し、Map : NSManagedObject を保存する必要がある場合にのみ作成できると思いました。

考え?ありがとう!

4

1 に答える 1

-1

複数のオブジェクトが必要ない場合、なぜそれらを作成するのですか?不要なものを削除する
か、既存のものを更新することをお勧めします。

于 2012-08-18T06:10:11.373 に答える