Objective c 显示当前距离
我正在尝试获取自LocationManager启动以来已行驶的当前距离。但我面临一些问题 以下是我目前掌握的代码:Objective c 显示当前距离,objective-c,cllocationmanager,Objective C,Cllocationmanager,我正在尝试获取自LocationManager启动以来已行驶的当前距离。但我面临一些问题 以下是我目前掌握的代码: -(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation { if (self.startLocation == nil) { tota
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if (self.startLocation == nil)
{
totalDistanceBetween = 0;
_startLocation = newLocation;
}
CLLocationDistance distanceBetween = [newLocation distanceFromLocation:_startLocation ];
self.startLocation = newLocation;
totalDistanceBetween += distanceBetween;
NSString *cycleDistanceString = [[NSString alloc]
initWithFormat:@"%f",
totalDistanceBetween];
_CurrentDistance.text = cycleDistanceString;
}
@end
当我运行我的应用程序时,我的标签CurrentDistance根本没有更新。我对objective-c还比较陌生,所以不确定我会错在哪里,有什么想法吗
谢谢您应该添加日志或调试,以确保收到位置回调。如果没有,则表示您尚未注册更新(正确)
如果您收到回调,那么我猜
\u CurrentDistance
是一个未连接标签的出口(因此您要求nil
做一些事情,但什么也没有发生)。我在这个方法的末尾放了一个日志,以打印出数组cycleInstanceString和newLocation,而不从这两者中获取任何内容。所以看起来好像没有调用该方法,但不知道为什么!在我看来还可以,但我对Objective-c还是相当陌生–您如何以及在哪里注册位置更新?-(void)startCycleLocation{if(!\u cycleLocation){u cycleLocation=[[CLLocationManager alloc]init]cycleLocation.desiredAccuracy=KCallocationAccuracyBestforNavigation;cycleLocation.distanceFilter=5;cycleLocation.delegate=self;startLocation=nil;}[cycleLocation startUpdatingLocation];
是我调用它们的地方,在didViewLoad上调用。你确定调用了吗?是的,我想是的,你想看看.m文件吗?只是一个旁注:根据Objective-C命名约定,方法和实例变量名,例如,\u CurrentDistance
,通常应该以小写字母开头,所以\u currentD距离
会更好。