MKAnnotation构造函数错误

| 我在使用MKAnnotation时遇到问题,我为注释创建了一个类“ cgdMapAnnotation \”,其中一个构造函数如下所示:
+ (id) initWithCoordinate:(CLLocationCoordinate2D)coordinate andTitle:(NSString*) title andSubtitle:(NSString*) subtitle {
    self = [super alloc];
    _coordinate = coordinate;
    _title = [title retain];
    _subtitle = [subtitle retain];
    return self;
}
问题是当我打电话时:
cgdMapAnnotation *placemark=[[[cgdMapAnnotation alloc]    initWithCoordinate:centerCoordinate andTitle:@\"Title\" andSubtitle:@\"SubTitle\" ] autorelease];
我在控制台中遇到以下错误:
-[cgdMapAnnotation initWithCoordinate:andTitle:andSubtitle:]: unrecognized selector sent to instance 0x33cf2fe0
我真的不明白是什么问题。有人可以帮忙吗? 提前致谢。     
已邀请:
首先,惯例是类名以大写字母开头。因此cgdMapAnnotation应该是CgdMapAnnotation或CGDMapAnnotation。 其次,initWithCoordinate:andTitle:andSubtitle:存在一些问题。 在名称的开头使用\'+ \'将其声明为类方法,但是您尝试将其用作实例方法。 [cgdMapAnnotation alloc]将返回cgdMapAnnotation的实例。所以你是 self = [super alloc]在此类方法中没有意义。 您的方法应该看起来像这样:
- (id)initWithCoordinate:(CLLocationCoodinate2D)coordinate andTitle:(NSString*) title andSubtitle:(NSString*) subtitle
{
  if( self = [super init] )
  {
    _coordinate = coordinate;
    _title = [title retain];
    _subtitle = [subtitle retain];
  }

  return self;
}
    

要回复问题请先登录注册