Проблемы с картой iOS 6 с помощью MKUserTrackingModeFollowWithHeading
Я пытаюсь решить две проблемы сMKUserTrackingModeFollowWithHeading
в iOS 6:
MKUserTrackingModeFollowWithHeading
работает ненадолго, но нервно и возвращаетсяMKUserTrackingModeFollow
почти сразу, особенно при высоких уровнях масштабирования.
Приложение иногда дает сбой при многократном измененииMKUserTrackingMode
: Я получилEXC_BAD_ACCESS
в основной теме, без дополнительной информации. Это трудно воспроизвести, но это происходило неоднократно.
Есть мысли о том, что может быть причиной этого? Это похоже на ошибку, но в собственном приложении Apple «Карты» такого поведения нет.
Чтобы изолировать проблемы, я создал приложение с одним представлением сMKMapView
иUIToolbar
(настроенный в .xib), к которому я добавляюMKUserTrackingBarButtonItem
,UIViewController
действует как<MKMapViewDelegate>
, Вот полный код реализации:
#import "ViewController.h"
@implementation ViewController
@synthesize mapView, toolbar;
- (void)viewDidLoad
{
[super viewDidLoad];
// Add MKUserTrackingBarButtonItem to toolbar
MKUserTrackingBarButtonItem *trackButton = [[MKUserTrackingBarButtonItem alloc] initWithMapView:self.mapView];
[toolbar setItems:[NSArray arrayWithObjects:trackButton, nil] animated:YES];
}
- (void)mapView:(MKMapView *)mapView didChangeUserTrackingMode:(MKUserTrackingMode)mode animated:(BOOL)animated
{
// Log MKUserTrackingMode change
NSString *modeType = (mode == 0) ? @"None" : ((mode == 1) ? @"Follow" : @"FollowWithHeading");
NSLog(@"MKUserTrackingMode changed to: %@", modeType);
}
@end