ios - MapKit Xcode 编程

标签 ios objective-c mkmapview

当我写这个方法时:

-(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/

相关文章:

ios - 像设置中一样选择 UITableViewCell

ios - 找不到 GTMSessionFetcher.h 文件将应用程序升级到最新的 google-api-objectivec-client

IOS - 使用自定义 UI TableViewCell 作为 TableFooter

objective-c - 成为第一响应者后如何识别点击 TextView ?

ios - 使用 Storyboard 对 map View iOS 7 进行控制

ios - map 上特定位置的用户当前位置

iphone - 移除 UINavigationController 圆角

iOS7 和 PhoneGap 构建 - 应用程序高度和触摸响应

android - iOS中的 Activity 生命周期相当于什么?

ios - 从 mapView.annotations 的自定义 MKAnnotation 子类中检索属性