マップに注釈をロードするときに奇妙な動作が発生します。プロパティに応じて異なる画像をロードするカスタム注釈があります。プロジェクトの開発中に、このイメージの 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 の初心者なので、メモリの問題を考えていないのでしょうか? ありがとう