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