0

我是新手,我正在把头撞到墙上,所以你能提供的任何帮助都将不胜感激。

我的应用程序正在下载一系列坐标和标题,我将它们转换为 MKAnnotations。我已经很好地实现了 MKAnnotation 协议,因为它不再抱怨这个,但这里是代码:

注释器.h:

#import <Foundation/Foundation.h>
#import "MapKit/Mapkit.h"

@interface Annotator : NSObject <MKAnnotation>

+ (Annotator *) createAnnotator:(CLLocationCoordinate2D *)coordinate
                      withTitle:(NSString *)title
                    andSubtitle:(NSString *)subtitle;

@property (nonatomic, strong) NSString *myTitle;
@property (nonatomic, strong) NSString *mySubtitle;
@property (nonatomic) CLLocationCoordinate2D *coordinate;

@end

到现在还挺无聊的。这是 Annotator.m:

#import "Annotator.h"

@implementation Annotator

@synthesize myTitle = _myTitle;
@synthesize mySubtitle = _mySubtitle;
@synthesize coordinate = _coordinate;

+ (Annotator *)createAnnotator:(CLLocationCoordinate2D *)coordinate
                     withTitle:(NSString *)title
                   andSubtitle:(NSString *)subtitle
{
    Annotator *annotation = [[Annotator alloc] init];
    annotation.myTitle = title;
    annotation.mySubtitle = subtitle;
    annotation.coordinate = coordinate;
    return annotation;
}

- (NSString *)title
{
    return self.myTitle;
}

- (NSString *)subtitle
{
    return self.mySubtitle;
}

@end

现在,我已经在一个中央视图控制器中获得了大部分其他代码,所以只要 HTTP 请求返回数据,我就会遍历它,创建我的 MKAnnotation 对象,然后为每个对象执行此操作:

[self.territoryMap addAnnotation:locationPin];

...其中 self.territoryMap 是我拖入故事板的 MKMapView 的出口,而 locationPin 是我使用上面的 Annotator 实现创建的 MKAnnotation 对象。

我看过的一些解决方案有 MKMapViewDelegate 方法,但在我看来它们不是必需的,因为我只是在寻找默认行为。我放了一个我发现的委托,它可以让我改变用户定位销的颜色,但这不是我担心的。

还有什么我需要做的吗?我很困惑!感谢您提供的任何帮助!

4

1 回答 1

0

您必须设置 MapViews 委托。然后它应该可以正常工作。

或者看看这个: http: //maybelost.com/2011/01/a-basic-mapview-and-annotation-tutorial/ 它看起来很像你想要做的!

于 2012-08-30T08:32:35.427 回答