0

我想在自定义表格单元格的标签中显示用户当前位置与另一个注释(显示在我的 MapView 上)之间的距离。

每个单元格显示咖啡馆的名称(nameLabel),在下面,我希望它显示它们与每个咖啡馆的距离(distanceLabel)。

我的MapViewController.m使用此代码来计算用户当前位置与最近的咖啡馆之间的距离:

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {

    for (MapViewAnnotation *annotation in self.mapView.annotations) {
        CLLocationCoordinate2D coord = [annotation coordinate];
        CLLocation *userLocation = [[CLLocation alloc] initWithLatitude:coord.latitude longitude:coord.longitude];
        annotation.distance = [newLocation distanceFromLocation:userLocation];
        CLLocationDistance calculatedDistance = [userLocation distanceFromLocation:userLocation];
        annotation.distance = calculatedDistance;
    }

我已经设置了我的自定义单元格,我只想知道我应该在我的 TableView 代码 (TableViewController.m) 中添加什么,以便在我的文本标签(称为distanceLabel)中显示计算距离。

例如,我如何完成这条线?

cell.distanceLabel.text = 

更新

刚刚尝试添加对我的 TableViewController.h 的引用,但 xcode 不断向我抛出错误“将 'CLLocationDistance' 重新定义为不同类型的符号”。

@class CLLocationDistance; 

@property (nonatomic, strong) CLLocationDistance *calculatedDistance; 

更新

.h 文件

在此处输入图像描述

****更新**

**.m 文件****

在此处输入图像描述

4

1 回答 1

1

对 fx 中的 CLLocationDistance 计算距离进行前向引用。你的 .h 。CLLocationDistance 是作为双精度类型的类型定义,是一种原始数据类型,因此不要在前向引用中使用指针(CLLocationDistance calulatedDistance; 或@property CLLocationDistance calulatedDistance;)。然后执行以下操作:

 cell.distanceLabel.text = [NSString stringWithFormat:@"%f", calculatedDistance]; 

所以事实上你不必创建另一个/新的双精度并将其分配给计算距离。很抱歉有任何混淆..:)

于 2013-01-28T09:25:32.740 回答