Я пытаюсь переместить приложение iOS7 с помощью MKMapview для поддержки iOS8. Однако я не мог получить новый запрос для пользователей, чтобы они могли правильно расположить свои места. Я создаю свой MKMapView на раскадровке, и делегат настроен и отлично работает на iOS7. Вот то, что я добавил в поддержку iOS8 Место обмена:iOS 8 Ошибка запроса местоположения пользователя MKMapView
myMapView.h
#import <UIKit/UIKit.h>
#import <MapKit/MapKit.h>
#import <CoreLocation/CoreLocation.h>
@interface myMapView : UIViewController <MKMapViewDelegate, CLLocationManagerDelegate>
@property (strong, nonatomic) IBOutlet MKMapView *mapView;
@property (strong, nonatomic) CLLocationManager *locationManager;
myMapView.m
//Code omitted
#define IS_OS_8_OR_LATER ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
//Code omitted
- (void)viewDidLoad {
[super viewDidLoad];
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
if(IS_OS_8_OR_LATER) {
//[self.locationManager requestWhenInUseAuthorization];
[self.locationManager requestAlwaysAuthorization];
[self.locationManager startUpdatingLocation];
}
[self.mapView setShowsUserLocation:YES];
[self.mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
}
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
MKCoordinateRegion region = { { 0.0, 0.0 }, { 0.0, 0.0 } };
region.center.latitude = self.locationManager.location.coordinate.latitude;
region.center.longitude = self.locationManager.location.coordinate.longitude;
region.span.latitudeDelta = 0.0187f;
region.span.longitudeDelta = 0.0137f;
[self.mapView setRegion:region animated:YES];
_initialPosition = NO;
}
Также я поставил NSLocationAlwaysUsageDescription
ключ и его значение в моем InfoPlist, который показывает правильное сообщение, предлагая пользователю поделиться своим местоположением.
К сожалению, функция делегата -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
никогда не вызывается. Хотя каждый раз при загрузке viewController вызывается [self.locationManager startUpdatingLocation]
, но делегат, похоже, не отвечает на него. Есть ли проблема в том, как я установил делегат или есть что-то еще, что я здесь отсутствует?
UPDATE: Кажется, что мой gpx-файл не вызывается при запуске. Я освобождал и перезарядил свой файл местоположение, даже изменено на местоположение по умолчанию, но местоположение не найдено: Domain=kCLErrorDomain Code=0
UPDATE 2: Вот SS из параметров, которые я на самом деле удалось с запросом пользователя, но не удается получить/обновить местоположение независимо от того, сколько я обновляю. App privacy level: Location sharing always http://barisaltop.com/location.png
Спасибо!
Такая же проблема для меня тоже. Вы нашли решение по этой проблеме? –