我正在创建一个应用程序,它应显示两点之间的路径。
MKPolyline *routeLine = [MKPolyline polylineWithCoordinates:locations count:2];
[mapView addOverlay:routeLine];
这两个位置存储在数组“位置”中。
我收到错误
将Objective-C指针类型'NSMutableArray *'隐式转换为C指针类型'CLLocationCoordinate2D *'需要桥接转换
请帮我解决这个问题 提前谢谢。
答案 0 :(得分:2)
此方法需要CLLocationCoordinate2D数组类型的参数。您将必须创建一个CLLocationCoordinate2D类型的数组。代码看起来会是这样的:
CLLocationCoordinate2D *coordsArray = malloc(sizeof(CLLocationCoordinate2D) * locations.count);
int i = 0;
for (CLLocation *loc in locations) {
coordsArray[i] = loc.coordinate;
i++;
}
MKPolyline * routeLine = [MKPolyline polylineWithCoordinates:coordsArray
count:locations.count];
free(coordinateArray);
[mapView addOverlay:routeLine];
答案 1 :(得分:0)
polylineWithCoordinates:count:
接受CLLocationCoord2D
类型的对象数组,count是coord中的对象数。看看这个link。我在下面阅读了您的评论,似乎您的数组(位置)中的对象属于MKAnnotations
类型,而它们应该是CLLocationCoord2D
。看看这个。此外,错误表明此数组的某个对象(您提供的)包含类型为NSMutableArray
的对象。也许在某个地方,你正在添加错误的实例。看看这个。
如果有帮助,请告诉我。