10

MKMapSnapshotter は、シミュレーターで最大 2GB の RAM を使用しているようで、メモリ警告をトリガーし、デバイス上で非常に長い時間アプリをハングさせます。設定のどの部分がこれを引き起こしているのかわかりません。

この膨大な使用量は、複数の画像を同時に取得する場合に発生しますが、複数の画像を次々に取得する場合でも、率直に言って大量の RAM (ピーク時で 600MB) を使用し、CPU を最大 190% 使用して完全に占有するようです。要求された後に画像を保存することさえせずに、他のすべてのロジックを削除しようとしましたが、膨大な RAM と CPU の使用率が引き続き発生します。

これは意図したものではありません。この暴走的なリソースの浪費を引き起こすには、私が設定していない何かがあるに違いありません。ここに私のオプションコードがあります:

    MKMapSnapshotOptions* options = [MKMapSnapshotOptions new];
    options.region = MKCoordinateRegionMake(CLLocationCoordinate2DMake(self.lat.doubleValue, self.lng.doubleValue), MKCoordinateSpanMake(0.01, 0.01));
    options.scale = 2.0;
    options.size = CGSizeMake(300, 44);
    options.showsBuildings = NO;

    MKMapSnapshotter* snapshotter = [[MKMapSnapshotter alloc] initWithOptions:options];
    [snapshotter startWithCompletionHandler:^(MKMapSnapshot *snapshot, NSError *error) {
        // even if I do nothing in here, it still goes crazy
    }];

ここで何が欠けていますか?

4

0 に答える 0