首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未声明的MKAnnotation

未声明的MKAnnotation
EN

Stack Overflow用户
提问于 2011-06-25 05:54:16
回答 1查看 2.7K关注 0票数 0

我知道之前有一个关于这方面的问题。然而,我认为有点新手,因为我不能解决它。

当我尝试这样做时,我得到了这个错误:

代码语言:javascript
复制
MKAnnotation *annotation = [[MKAnnotation alloc] initWithCoordinate:coordenada title:@"HELLO!"];
[mapa addAnnotation:annotation];

我还有以下方法:

代码语言:javascript
复制
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation
{
    MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.mapa dequeueReusableAnnotationViewWithIdentifier: @"asdf"];
    if (pin == nil)
    {
        pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"asdf"] autorelease];
    }
    else
    {
        pin.annotation = annotation;
    }
    pin.pinColor = MKPinAnnotationColorRed;
    pin.animatesDrop = YES;
    return pin;
}

并在标题中执行了#import < MapKit/MKAnnotation.h>

有什么需要帮忙的吗?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-25 06:20:54

MKAnnotation是一个协议,而不是一个可以实例化的类。

您是否定义了自己的实现MKAnnotationinitWithCoordinate:title:方法的类?如果有,请使用该类名并导入其头文件。

如果您还没有创建自己的注释类,则必须创建一个注释类,或者可以使用预定义的MKPointAnnotation类(在iOS 4+中):

代码语言:javascript
复制
MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
annotation.coordinate = coordenada;
annotation.title = @"HELLO!";
[mapa addAnnotation:annotation];
[annotation release];

您还需要执行以下操作:

  • 将MapKit框架添加到项目中
  • 在文件顶部添加#import <MapKit/MapKit.h>
  • 设置映射视图的delegate属性(或IB中的插座),否则viewForAnnotation不会被调用<代码>H214<代码>F215
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6474171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档