未调用ios11 didUpdateLocations

时间:2017-09-06 06:57:21

标签: ios cllocationmanager ios11

我正在使用CLLocationManager开发ios app。

在ios10之前,我调用了startUpdatingLocation,然后调用了didUpdateLocations,并获得了位置信息。

现在,我更新了iOS11 beta9和Xcode beta6。 我调用了startUpdatingLocation,但没有调用didUpdateLocations。 所以我找不到任何地点。

位置是我的应用的核心信息。 有没有人有同样的问题?或者可以解决这个问题? 抱歉我的英语不好。谢谢。

4 个答案:

答案 0 :(得分:2)

在iOS 11中添加了info.plist中的新隐私密钥,您应该添加其中任何一个,希望info.plist中的添加为您工作。

/*
*      Either the NSLocationAlwaysAndWhenInUseUsageDescription key or both the
*      NSLocationAlwaysUsageDescription and NSLocationWhenInUseUsageDescription
*      keys must be specified in your Info.plist; otherwise, this method will do
*      nothing, as your app will be assumed not to support Always authorization.
*/

答案 1 :(得分:0)

添加Info.plsit

privacy - location usage description
Privacy - Location When In Use Usage Description
Application NSLocationAlwaysUsageDescription

enter image description here

答案 2 :(得分:0)

我有一个不同的问题。我不小心将方法声明为类方法而不是实例方法。

+ (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations

而不是

- (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations

一旦我将“+”更改为“ - ”,一切正常。

答案 3 :(得分:0)

如果您在模拟器上运行,请确保模拟器将位置设置为自定义位置。默认情况下,不选择任何一个。 您可以在模拟器->功能->位置上找到它 它对我有用。