iOS 8 MKMapView用户位置请求失败

jayjay_21

我一直在尝试将我的iOS7应用与MKMapview一起移动以支持iOS8。但是,我无法获得新的要求,要求用户共享其位置才能正常工作。我在情节提要板上创建了MKMapView,并设置了委托并可以在iOS7上完美运行。这是我为支持iOS8位置共享而添加的内容:

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]调用,但是委托似乎没有响应。我该如何设置委托人是否存在问题,或者我在这里还缺少其他东西?

更新:似乎我的gpx文件也没有在启动时被调用。我已经清除并重新加载了位置文件,甚至更改为默认位置,但未找到任何位置:Domain=kCLErrorDomain Code=0

更新2:这是我实际上已成功完成用户请求的设置中的SS,但是无论刷新多少,都无法获取/更新位置。(来源:barisaltop.com应用程序隐私级别:始终共享位置

谢谢!

mer他们

几天前我遇到了同样的问题。解决方案是将(for )或(for string添加Supporting Files / Info.plistNSLocationAlwaysUsageDescription[CLLocationManager requestAlwaysAuthorization]NSLocationWhenInUseUsageDescription[CLLocationManager requestWhenInUseAuthorization]

您还可以Info.Plist使用右键单击>打开为>源代码来编辑的源代码,并添加以下行:

<!-- for requestAlwaysAuthorization -->
<key>NSLocationAlwaysUsageDescription</key>
<string>Explain for what are you using the user location</string>
<!-- for requestWhenInUseAuthorization -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>Explain for what are you using the user location</string>

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS 8当前位置错误

来自分类Dev

显示用户的位置Xcode6 / IOS8

来自分类Dev

从iOS7迁移后,为什么iOS8 SSL请求间歇性失败?

来自分类Dev

iOS7和iOS8:如何检测用户何时拒绝推送通知请求

来自分类Dev

Swift / iOS8顺序HTTP请求

来自分类Dev

iOS 8 AutoLayout更改视图的位置

来自分类Dev

iOS 8中的requestWhenInUseAuthorization,等到用户响应

来自分类Dev

iOS 8键盘-干扰我的用户界面

来自分类Dev

用户之间的iOS 8数据共享

来自分类Dev

iOS 8键盘-干扰我的用户界面

来自分类Dev

用户之间的iOS 8数据共享

来自分类Dev

iOS:每次用户加载应用程序时,如何刷新MKMapView用户位置

来自分类Dev

为什么MKMapView iOS8上不显示MKCircle

来自分类Dev

MKMapView在注解选择iOS8上显示空白

来自分类Dev

MKMapView在注解选择iOS8上显示空白

来自分类Dev

iOS 8 Mapkit和位置-每天的请求数量是否有限制?

来自分类Dev

无法使用CLLocation Manager获取iOS 8中用户的位置?

来自分类Dev

iOS 8 Map Kit Obj-C无法获取用户位置

来自分类Dev

具有用户位置和适当比例/跨度的iOS初始化MKMapView

来自分类Dev

iOS SBJson请求失败

来自分类Dev

iOS 8的基本身份验证失败

来自分类Dev

MVVM交叉解析IMvxTouchViewCreator在iOS 8上失败

来自分类Dev

IOS8应用程序图标提交失败

来自分类Dev

NSError域检查条件在iOS 8中失败

来自分类Dev

iOS MKMapView上的当前位置按钮

来自分类Dev

如何在iOS 8中测试http请求?

来自分类Dev

iOS 8键盘读/写设置,无需请求打开权限

来自分类Dev

startMonitoringSignificantLocationChanges从不接收iOS8上的位置

来自分类Dev

无法获取我的位置以显示在iOS 8的Google地图中

Related 相关文章

热门标签

归档