"CLLocationmanager委托方法在Xcode6中不起作用。"

29 浏览
0 Comments

"CLLocationmanager委托方法在Xcode6中不起作用。"

这个问题已经有答案了:

iOS 8中位置服务不工作

我在Xcode 6中创建了一个新项目,并将旧文件添加到此项目中(旧文件是在Xcode 5中创建的)。但是发生的情况是一切工作都很好,但是“didUpdateToLocation”委托方法未被调用,我还使用了“didUpdateLocations”委托方法,但两者都不起作用。我使用的代码来自旧文件,但核心定位框架已经从Xcode 6添加了,我不知道我错过了什么,请任何人指导我找到解决方案。

admin 更改状态以发布 2023年5月21日
0
0 Comments

如果您在iOS 8设备/模拟器上进行测试,旧的位置代码可能会失效,因为iOS 8处理位置服务权限访问的方式不同。截至目前的iOS 8测试版,您需要使用新的-requestWhenInUseAuthorization 方法:

- (void)updateCurrentLocation {
    if ([self.locationManager respondsToSelector:@selector(requestWhenInUseAuthorization)]) {
        [self.locationManager requestWhenInUseAuthorization];
    }
    [self.locationManager startUpdatingLocation];
}

用户提示包含了来自您应用程序的Info.plist文件中的NSLocationWhenInUseUsageDescription 键的文本,调用此方法时需要该键的存在。

NSLocationWhenInUseUsageDescription
We use your location to find places near you.

0