当我尝试在MKMapView上添加注释时,我有一个随机异常。 这个崩溃只发生在这一行代码中,我还有其他几个在我的地图上添加注释。
在我的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
答案 0 :(得分:0)
1)点击你的目标
2)单击编辑方案
3)导航到Run-&gt;诊断
4)启用Zombie Objects
5)运行您的应用程序,并尝试重现崩溃 调试器将在解除分配的对象调用上停止,您将进行堆栈跟踪,因此调试此问题将变得更加容易。
答案 1 :(得分:0)
我遇到了同样的问题。我调试发现mapView和添加的注释都具有值
启用僵尸对象没有区别。
我想这是iOS的系统错误。