我想在自定义表格单元格的标签中显示用户当前位置与另一个注释(在我的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 < /强>)。
E.g。我该如何完成这一行呢?
cell.distanceLabel.text =
更新
刚尝试添加对我的TableViewController.h的引用,但是xcode不断向我提出错误“将'CLLocationDistance'重新定义为不同类型的符号”。
@class CLLocationDistance;
@property (nonatomic, strong) CLLocationDistance *calculatedDistance;
更新
.h文件
****更新**
**。m file ****
答案 0 :(得分:1)
为fx中的CLLocationDistance calculatedDistance做一个前向参考。你的.h。 CLLocationDistance是一个double,一个prmitive数据类型的typedef,所以不要在前向引用中使用指针(CLLocationDistance calulatedDistance;或@property CLLocationDistance calulatedDistance;)。然后执行以下操作:
cell.distanceLabel.text = [NSString stringWithFormat:@"%f", calculatedDistance];
因此事实上,您不必创建另一个/ new double并将其分配给calculatedDistance。对不起任何困惑.. :)