gpt4 book ai didi

iphone - MKPinAnnotationView 与 MKAnnotationView

转载 作者:行者123 更新时间:2023-12-03 19:39:00 31 4
gpt4 key购买 nike

我继承了一个引发此警告的项目

Incompatible pointer types assigning to 'MKPinAnnotationView *' from 'MKAnnotationView *'

在这一行

pinView=[[[MKAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPinID]autorelease];
}

我想在没有警告的情况下退回项目,所以我希望这里有人能快速给出答案

完整代码:

-(MKAnnotationView *)mapView:(MKMapView *)mV viewForAnnotation: (id  <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = nil;

NSUserDefaults *prefs=[NSUserDefaults standardUserDefaults];

if(annotation != mapView.userLocation)

{

static NSString *defaultPinID = @"com.invasivecode.pin";

pinView = (MKPinAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:defaultPinID];


if (!pinView) {
pinView=[[[MKAnnotationView alloc]initWithAnnotation:annotation reuseIdentifier:defaultPinID]autorelease];
}

}
pinView.animatesDrop=YES;
[mapView.userLocation setTitle:@"I am here"];
[mapView.userLocation setSubtitle:[prefs objectForKey:@"CurrentLocationName"]];
return pinView;
}

谢谢!

最佳答案

pinView 变量被声明为 MKPinAnnotationView,但该行创建了一个 MKAnnotationView

更改此行:

pinView=[[[MKAnnotationView alloc]initWithAnnotation...

至:

pinView=[[[MKPinAnnotationView alloc]initWithAnnotation...


您还应该有一个 else 部分到 if 来处理注释 View 的重用:

else
pinView.annotation = annotation;

关于iphone - MKPinAnnotationView 与 MKAnnotationView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10499226/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com