位置服务在ios8中不起作用

时间:2014-09-20 13:51:14

标签: ios ios8 cllocationmanager

我现在挣扎了几天而且我无法解决我的问题(尽管所有信息都在SO上)。抱歉是傻瓜。

在我的应用位置服务停止在iOS 8中工作。在此版本之前,一切正常。 我在这里读到de plist文件中必须有一些键,并且必须使用外部编辑器设置它们。

这是: Screenshot of keys in Plist file

但它仍然无效。在模拟器中,或者在我的设备上,我没有被提示。

我也理解为我的文件添加一些代码。 我应该添加什么代码,我应该在哪里添加它?

这是我的.h文件:

@property (strong, nonatomic) CLLocationManager *location;

这是在我的.m文件中:

@synthesize location;

-(void) locationStuff {

//Get location en set MapView

location=[[CLLocationManager alloc]init];
location.delegate=self;
location.desiredAccuracy=kCLLocationAccuracyBest;
location.distanceFilter=kCLDistanceFilterNone;
location.pausesLocationUpdatesAutomatically = NO;

[self startUpdatingLocation];

[mapView setDelegate:self];
[mapView setUserTrackingMode:MKUserTrackingModeFollow animated:YES];
[mapView setCenterCoordinate:mapView.userLocation.location.coordinate animated:YES];

[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:NO] forKey:@"appRunning"];

[[NSUserDefaults standardUserDefaults] synchronize];

}

可以,有人帮我吗?谢谢,再次抱歉,我不理解其他问题的答案。我真的需要一些简单的解释。

1 个答案:

答案 0 :(得分:2)

在iOS 8中已更改,您必须使用以下代码请求位置服务。

  • requestAlwaysAuthorization - 用于背景位置

    [self.locationManager requestAlwaysAuthorization];,或

  • requestWhenInUseAuthorization - 仅在应用处于有效状态时的位置

    [self.locationManager requestWhenInUseAuthorization];

如果您没有同时发出两个请求,iOS将忽略startUpdateLocation请求。

另外。 包括NSLocationAlwaysUsageDescriptionNSLocationWhenInUseUsageDescription密钥,我知道您已完成。

希望这有帮助。