У меня есть следующий простой код:
self.departureAnnotation = [[UserAnnotation alloc] init];
self.departureAnnotation.coordinate = self.map.centerCoordinate;
[self.map addAnnotation:self.departureAnnotation];
[self.map selectAnnotation:self.departureAnnotation animated:YES];
Что этот код должен сделать (очевидно), так это добавить аннотацию к карте и сразу же выбрать ее.
Тем не менее, этот код на моем iPhone 4S без джейлбрейка под управлением iOS 5.1.1 не выбирает аннотацию (выноска не отображается), но это прекрасно работает в симуляторе iOS 6.
Чтобы исправить это, я сделал следующее, что в основном задерживает выбор вывода на 0,2 секунды, что мне не нравится:
self.departureAnnotation = [[UserAnnotation alloc] init];
self.departureAnnotation.coordinate = self.map.centerCoordinate;
[self.map addAnnotation:self.departureAnnotation];
[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(selectPin:) userInfo:self.departureAnnotation repeats:NO];
- (void)selectPin:(NSTimer *)timer
{
[self.map selectAnnotation:timer.userInfo animated:YES];
}
Почему это происходит ?
PS: Кроме того, следуя тому же шаблону, если я проверю [self.map viewForAnnotation: self.departureAnnotation]
вместо выбора булавки, представление будет нулевым. После этих 0,2 секунды задержки все в порядке.