objective-c - MKAnnotation 未在 MKMapView 上显示标注

标签 objective-c ios mkmapview automatic-ref-counting

我有一个 MKMapView,我正在添加这样的注释:

for (NSDictionary *tmp in response)
{
    NSDictionary *places = [tmp objectForKey:@"place"];
    NSDictionary *location = [places objectForKey:@"location"];
    NSLog(@"long: %@ Lat:%@",[location objectForKey:@"longitude"], [location objectForKey:@"latitude"]);

    float longitude = [[location objectForKey:@"longitude"] floatValue];
    float latitude = [[location objectForKey:@"latitude"] floatValue];


    CLLocationCoordinate2D locationco = {latitude,longitude};
    NSString *titleString = [tmp objectForKey:@"name"];

    Place *pin = [[Place alloc] init];
    pin.coordinate = locationco;
    pin.title = titleString;
    pin.subtitle = @"A Location";

    //NSArray *annots = [[NSArray alloc] initWithObjects:pin, nil];
    //[map addAnnotations:annots];
    [map addAnnotation:pin];
    [[map viewForAnnotation:pin] setCanShowCallout:YES];
}

MKAnnotation 很好地显示在 map 上,我可以选择它们,但是没有出现标注气泡。我知道他们是从这个中正确选择的

-(void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
    [view setCanShowCallout:YES];
    NSLog(@"Title:%@",[view.annotation description]);
}

但这只是打印出来

Title:(null)

我正在使用 ARC,我已经在我的 Place 对象中设置了属性:

@property (nonatomic) CLLocationCoordinate2D coordinate;
@property (nonatomic,readwrite, copy) NSString *title;
@property (nonatomic,readwrite, copy) NSString *subtitle;

我做错了什么/遗漏了什么? 谢谢。

最佳答案

标注未显示,因为 titlenil

没有必要实现 viewForAnnotation 来显示标注,因为默认的 map View 实现显示标注。 (但是,如果您确实实现了它,则必须在该委托(delegate)方法中设置 canShowCallout,而不是您现在正在执行的位置。)

即使您将 canShowCallout 设置为 YES,如果 titlenil,标注仍然不会显示> 或空白。

记录tmp 字典。 name 键为空或不存在。

关于objective-c - MKAnnotation 未在 MKMapView 上显示标注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8203436/

相关文章:

iphone - 向下移动 UITabBarItem 图像?

ios - 将大类引用传递给其他类,性能下降

objective-c - cocoa : looking for a general strategy for programmatic manipulation of NSTextView storage without messing up undo

javascript - 客户端 JavaScript CSV 文件生成和电子邮件附件

iphone - 登录FB后如何发帖到墙

ios - 从 subview 中的父 View Controller 检索数组

iphone - 无法从 map View 中删除所有注释

ios - Apple Maps Location Marker 就像在 Find Friends App 中一样

ios - UITableView 编辑模式阻止单元格重新分配并减慢 dequeueReusableCellWithIdentifier

ios - map 缩放时,图钉上的弹出框不会移动