我正在使用CLLocationManager开发ios app。
在ios10之前,我调用了startUpdatingLocation,然后调用了didUpdateLocations,并获得了位置信息。
现在,我更新了iOS11 beta9和Xcode beta6。 我调用了startUpdatingLocation,但没有调用didUpdateLocations。 所以我找不到任何地点。
位置是我的应用的核心信息。 有没有人有同样的问题?或者可以解决这个问题? 抱歉我的英语不好。谢谢。
答案 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
答案 2 :(得分:0)
我有一个不同的问题。我不小心将方法声明为类方法而不是实例方法。
+ (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
而不是
- (void) locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
一旦我将“+”更改为“ - ”,一切正常。
答案 3 :(得分:0)
如果您在模拟器上运行,请确保模拟器将位置设置为自定义位置。默认情况下,不选择任何一个。 您可以在模拟器->功能->位置上找到它 它对我有用。