当我写这个方法时:
-(MKAnnotationView *) mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
MKPinAnnotationView *view =[self.mapView dequeueReusableAnnotationViewWithIdentifier:@"pin"];
if (view == nil) {
view =[[MKPinAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:@"pin"];
}
}
我的*view
对象上有警告..“使用MKAnnotationView *
类型的表达式初始化MKPinAnnotationView *
的指针类型不兼容”
请问这个问题有什么解决办法
最佳答案
如果您确定使用出队可以获得正确类型的注释,那么您可以像这样简单地转换类型:
MKPinAnnotationView *view = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier:@"pin"];
重点是 dequeueReusableAnnotationViewWithIdentifier
返回 id
类型,它可以是指向任何对象的指针。因此编译器会警告您类型 MKPinAnnotationView *
和 id
可能不兼容。
关于ios - MapKit Xcode 编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19947114/