1

私は現在 を使用してMKSnapshotterいますが、(MKMapView と同様に) メモリ消費量が多く、アプリの実行中は解放されないことに気付きました。私はメモリを解放しようとしましたが、役に立たない:

-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self releaseMKMapSnapshotMem];
}

-(void)releaseMKMapSnapshotMem{
    self.snapshotter=nil;//MKSnapShotter
    self.options=nil;//MKSnapShotterOptions
 }

どんな助けでも大歓迎です。

アップデート には詳細が含まれます

MKMapSnapshotOptions * snapOptions= [[MKMapSnapshotOptions alloc] init];
        self.options=snapOptions;
        CLLocation * salonLocation = [[CLLocation alloc] initWithLatitude:self.lat longitude:self.long];
        MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(location.coordinate, 300, 300);
        self.options.region = region;
        self.options.size = self.view.frame.size;
        self.options.scale = [[UIScreen mainScreen] scale];

        MKMapSnapshotter * mapSnapShot = [[MKMapSnapshotter alloc] initWithOptions:self.options];
        self.snapshotter =mapSnapShot;
        [self.snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
            if (error) {
                NSLog(@"[Error] %@", error);
                return;
            }

            UIImage *image = snapshot.image;
            self.mapImage = image;
            NSData *data = UIImagePNGRepresentation(image);

            [self saveMapDataToCache:data WithKey:mapName];



        }];
4

1 に答える 1