1

マップに注釈をロードするときに奇妙な動作が発生します。プロパティに応じて異なる画像をロードするカスタム注釈があります。プロジェクトの開発中に、このイメージの 1 つを変更しました (プロジェクトからリソースを削除し、新しいリソースを追加しました)。シミュレーターでアプリをデバッグすると、正常に動作します。正しい画像を読み込んでいます。デバイスでは、削除した古いイメージをまだロードしています。(画像はプロジェクトにありません!)アプリをアンインストールしてデバイスをクリーニングしましたが、まだ問題があります。

ここで、注釈に画像を設定するコードを示します。

- (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *identifier = @"ParkingLocation";
if ([annotation isKindOfClass:[ParkingLocation class]]) {

    ParkingLocation *parkLoc = (ParkingLocation *)annotation;
    if ([parkLoc.type isEqualToString:@"CHIUSO"])
    {
        parkLoc.imagePin = [UIImage imageNamed:@"locator_parking"];
    }
    else
    {
        if ([parkLoc.type isEqualToString:@"PARCOMETRO"])
            parkLoc.imagePin = [UIImage imageNamed:@"locator_strada"];
        else
            parkLoc.imagePin = [UIImage imageNamed:@"locator_general"];
    }



    MKAnnotationView *annotationView = (MKAnnotationView *) [self.myMapView dequeueReusableAnnotationViewWithIdentifier:identifier];
    if (annotationView == nil) {
        annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:identifier];
        annotationView.enabled = YES;
        annotationView.canShowCallout = YES;

        annotationView.image = parkLoc.imagePin;

        annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    } else {
        annotationView.image = parkLoc.imagePin;
        annotationView.annotation = annotation;
    }

    return annotationView;
}

return nil;

}

プロジェクトで変更した画像の名前は「locator_strada」です誰も同じ動作をしましたか? 私は iOS と Objective-C の初心者なので、メモリの問題を考えていないのでしょうか? ありがとう

4

0 に答える 0