MKMapView addAnnotations崩溃

时间:2014-09-25 14:39:34

标签: ios exception core-data mkmapview mapkit

当我尝试在MKMapView上添加注释时,我有一个随机异常。 这个崩溃只发生在这一行代码中,我还有其他几个在我的地图上添加注释。enter image description here

在我的App中,注释是NSManagedObject的子类,直接来自Core Data fetch。 我试图长时间调试这个错误,但它只是在这个函数中随机发生。

(我已检查坐标是否有效,是否存在核心数据线程问题,且数据不是故障)

@try @catch不适用于此错误。

有什么想法吗?

编辑:那是注释子类

MapPoint.h

@interface MapPoint : NSManagedObject <MKAnnotation>

@property double latitude;
@property double longitude;
@property double  kmINI;
@property double kmFIN;
@property double tag;
@property (nonatomic, strong) NSDate * date;
@property (nonatomic, strong) NSString * name;
@property (nonatomic, strong) NSNumber * altitude;
@property (nonatomic, strong) NSString * descr;
@property (nonatomic, strong) NSString * identifier;
@property (nonatomic, strong) NSString * category;
@property (nonatomic, strong) NSString * note;

-(MKMapItem*)mapItem;

@end

MapPoint.m

@implementation MapPoint

@dynamic latitude;
@dynamic longitude;
@dynamic kmINI;
@dynamic kmFIN;
@dynamic date;
@dynamic category;
@dynamic altitude;
@dynamic descr;
@dynamic identifier;
@dynamic name;
@dynamic note;
@dynamic tag;

#pragma MKAnnotation protocols

-(NSString*)title{

    NSString *title = self.category;
    return title;
}

-(NSString*)subtitle{

    NSString *subtitle = self.name;
    return subtitle;
}

-(CLLocationCoordinate2D)coordinate{
    return CLLocationCoordinate2DMake(self.latitude, self.longitude);

}

- (MKMapItem*)mapItem {

    MKPlacemark *placemark = [[MKPlacemark alloc]
                              initWithCoordinate:self.coordinate
                              addressDictionary:nil];

    MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
    mapItem.name = self.subtitle;

    return mapItem;
}


@end

2 个答案:

答案 0 :(得分:0)

1)点击你的目标
2)单击编辑方案
3)导航到Run-&gt;诊断
4)启用Zombie Objects

enter image description here

5)运行您的应用程序,并尝试重现崩溃 调试器将在解除分配的对象调用上停止,您将进行堆栈跟踪,因此调试此问题将变得更加容易。

答案 1 :(得分:0)

我遇到了同样的问题。我调试发现mapView和添加的注释都具有值

启用僵尸对象没有区别。

我想这是iOS的系统错误。