MKUserTrackingModeFollowWithHeading
iOS 6 で2 つの問題を解決しようとしています。
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