Изображение пользовательского аннотации не отображается при сборке устройства в MKMapView - PullRequest
1 голос
/ 02 июля 2010

Я использую iphone SDK и пытаюсь использовать пользовательское изображение для моего AnnotationView на моем MKMapView. Мой подход прекрасно работает для другого экрана в моем приложении, но для проблемного я вижу изображение в симуляторе, но не на устройстве. Я в основном создаю собственный вид, подобный этому:

@implementation CustomAnnotationView

- (id) initWithAnnotation:(id <MKAnnotation>)annotation reuseIdentifier:(NSString *)reuseIdentifier
{
    if (self = [ super initWithAnnotation:annotation reuseIdentifier:reuseIdentifier ])
    {
        self.opaque = NO;
        self.backgroundColor = [UIColor clearColor];

        self.image = [UIImage imageNamed:@"MapIcon.png"];

    }
    return self;
}

@end

Затем в методе getViewForAnnotation я делаю это:

    // attempt to reuse
    CustomAnnotationView* annotationView = (Custom AnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:@""];

    // if reuse failed, create a new one
    if (annotationView == nil)
    {
        annotationView = [[Custom AnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@""];
    }

    return annotationView;

Работает в симуляторе, но никогда в устройстве. Если я перестаю использовать пользовательский вид, он помещает красный штифт в оба (т.е. он работает). Кто-нибудь видел такое расхождение?

1 Ответ

1 голос
/ 02 июля 2010

Ничего себе. Я обнаружил, что проблема была в том, что MapIcon.png не существует. Это объясняет, почему он не работал на устройстве, но не объясняет, как мне удалось увидеть значок в симуляторе. Возможно, каким-то извращенным образом он нашел файл MapIconLocale.png, который находится в проекте. Или в проекте может быть какой-то ресурс трассировки, потому что у меня был MapIcon.png несколько недель назад и я его удалил (как-то копию)?

В любом случае, правильно названное изображение исправило его.

...