0

在我的应用程序中,我集成了一个视图控制器,如容器(拆分视图)。控制器视图控制器容器两个视图。详细视图和选择视图(表格视图)。

在此处输入图像描述

在选择表格单元格时,我需要在 MKMap 视图中加载 MKAnnotation。正常点击单元格时工作正常。如果我们同时从选择表视图中选择单元格(随机选择单元格更快)应用程序崩溃。我确信崩溃只是由于这个注释代码。这是我的代码。

注释类:

@interface AddressAnnotation : NSObject<MKAnnotation> {
    CLLocationCoordinate2D coordinate;
}
-(id)initWithCoordinate:(CLLocationCoordinate2D) c;
@end


@implementation AddressAnnotation
@synthesize coordinate;

- (NSString *)subtitle{
    return nil;
}

- (NSString *)title{
    return nil;
}

-(id)initWithCoordinate:(CLLocationCoordinate2D) c{
    coordinate=c;
    return self;
}

@结尾

在详细视图中添加注释的代码:

detail.h
      AddressAnnotation *addAnnotation;
detail.m
CLLocationCoordinate2D coordinate;

    coordinate.latitude = [self.latitude intValue];
    coordinate.longitude = [self.longitude intValue];
    [self.mapView setUserInteractionEnabled:NO];

   addAnnotation = [[AddressAnnotation alloc] initWithCoordinate:coordinate];
    [self.mapView addAnnotation:addAnnotation];

正如我所说,它在正常情况下工作正常,如果我们同时选择单元格,应用程序会崩溃。指导我解决这个问题。

谢谢。

4

1 回答 1

0

我找到了解决方案。崩溃是由于在地图视图中加载注释之前切换详细视图控制器。为此,需要在视图消失时将地图视图委托设置为 nil。这是我的代码。

- (void)viewDidDisappear:(BOOL)animated
{
     [self.mapView setDelegate:nil];
}
于 2013-05-11T10:50:15.030 回答