0

我目前正在阅读一个地理定位教程,该教程将 MKAnnotation 协议纳入课程。

本教程建议在 Theannotation.h 类中创建以下方法

+ (id)annotationWithCoordinate:(CLLocationCoordinate2D)coord; 
- (id)initWithCoordinate:(CLLocationCoordinate2D)coord;

并在实施中

  + (id)annotationWithCoordinate:(CLLocationCoordinate2D)coord {

return [[[[self class] alloc] initWithCoordinate:coord] autorelease];
  }


- (id)initWithCoordinate:(CLLocationCoordinate2D)coord {
    if ( self = [super init] ) {
    self.coordinate = coord;
}
return self;

}

然后在视图控制器中调用第二种方法

  Theannotation *annotation = [[SimpleAnnotation alloc] initWithCoordinate:Coords];

我完全理解第二种方法,但是我对包含第一种方法感到困惑。在示例教程中的任何其他地方都没有调用类方法,我很难理解为什么在这种情况下要使用类方法。

4

2 回答 2

0

您可以省略此类方法,但在某些情况下它很有用,因为它为您提供了一种机制来创建将自动释放的“临时”注释。当然,您可以手动完成,但在这种情况下,类方法是一种方便的方式。

于 2011-02-23T10:50:15.883 回答
0

在此处浏览此博客

或者您可以下载代码 链接

看看代码,你就会知道哪些是强制性的,哪些不是。

于 2011-02-23T10:52:23.747 回答