Ios 管理罗盘校准警报
根据苹果公司文件:Ios 管理罗盘校准警报,ios,objective-c,iphone,core-location,cllocationmanager,Ios,Objective C,Iphone,Core Location,Cllocationmanager,根据苹果公司文件: - (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager 如果此方法返回YES,Core Location将显示标题 立即在当前窗口顶部显示校准警报 如果此方法返回NO或未提供实现 在代理中,“核心位置”不显示标题 校准警报。即使未显示警报,也可以进行校准 当任何干扰磁场移开时,仍然会自然发生 从设备上 我想要苹果公司记录的确切行为,即如果返回否或不提供实施警报,则
- (BOOL)locationManagerShouldDisplayHeadingCalibration:(CLLocationManager *)manager
如果此方法返回YES,Core Location将显示标题
立即在当前窗口顶部显示校准警报
如果此方法返回NO或未提供实现
在代理中,“核心位置”不显示标题
校准警报。即使未显示警报,也可以进行校准
当任何干扰磁场移开时,仍然会自然发生
从设备上
我想要苹果公司记录的确切行为,即如果返回否或不提供实施警报,则不会显示
我的行为正好相反。我尝试了以下方法:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
self.locationManager.distanceFilter = 10.0;
#ifdef __IPHONE_8_0
if (IS_IOS8_AND_UP)
[self.locationManager requestAlwaysAuthorization];
#endif
[self.locationManager startUpdatingLocation];
[self.locationManager startUpdatingHeading];
- (BOOL)locationManagerShouldDisplayHeadingCalibration:
(CLLocationManager *)manager {
return NO;
}
在显示校准窗口之前调用此方法。是否调用了此方法?我准备了一个快速样本,它似乎按照预期工作。您是否可以包含设置
CLLocationManager
的代码?@David:添加了源代码,每次显示校准窗口之前都会调用该方法。使用几乎完全相同的代码(requestAlwaysAuthorization
没有条件化),事情完全按照预期/记录的方式进行。@David:你的意思是说从“requestAlwaysAuthorization”中删除“if(IS(IS IOS8)和“IS UP)”这个条件?