Hello I am seeing this weird issue, i am populating my own custom annotation to mkmapview in a for loop, after running the for loop for 54 times that is on 55th times when i do mkmapview addannotation on that line it throws EXC_BAD_ACCESS here are code
- (void)viewDidLoad {
[super viewDidLoad];
[mkMapView setMapType:MKMapTypeStandard];
[mkMapView setZoomEnabled:YES];
[mkMapView setShowsUserLocation:YES];
[mkMapView setScrollEnabled:YES];
MKCoordinateRegion region;
region.center.latitude = currentLocation.latitude;
region.center.longitude = currentLocation.longitude;
MKCoordinateSpan span;
span.latitudeDelta = 0.03;
span.longitudeDelta = 0.03;
region.span = span;
[mkMapView setRegion:region animated:TRUE];
[mkMapView setDelegate:self];
int i =0;
for(MyObject* myObject in myObjectArray)
{
NSLog(@"%d", i);
if(i == 55){
NSLog(@"%@", myObject);
}
i++;
NSString *maintitle = myObject.name;
NSString *subtitle = myObject.address;
CLLocationCoordinate2D newCoordinate = { [myObject.latitude doubleValue], [myObject.longitude doubleValue] };
Annotation *pinAnnotation = [[Annotation alloc]initWithCoordinate:newCoordinate title:maintitle subtitle:subtitle image:NULL];
[mkMapView addAnnotation: pinAnnotation];
[pinAnnotation release];
}
}
- (void)dealloc {
mkMapView.delegate = nil;
[mkMapView release];
mkMapView = nil;
[myObjectArray release];
myObjectArray = nil;
[super dealloc];
}
Here is the code for Annotation.h
@interface Annotation : NSObject <MKAnnotation>{
CLLocationCoordinate2D coordinate;
NSString * title;
NSString * subtitle;
UIImage * image;
}
@property (nonatomic, readwrite, assign) CLLocationCoordinate2D coordinate;
@property (nonatomic, retain) NSString * title;
@property (nonatomic, retain) NSString * subtitle;
@property (nonatomic, retain) UIImage * image;
- (id) initWithCoordinate:(CLLocationCoordinate2D) coordinate title:(NSString*) title subtitle:(NSString*) subtitle image:(UIImage*) image;
@end
Here is the code for Annotation.m
- (id) initWithCoordinate:(CLLocationCoordinate2D)coordinate title:(NSString*) title subtitle: (NSString*) subtitle image:(UIImage*) image{
self = [super init];
if(self){
self.coordinate = coordinate;
self.title = title;
self.subtitle = subtitle;
self.image = image;
}
return self;
}
-(void) dealloc{
[title release];
[subtitle release];
[image release];
[super dealloc];
}
here are the stacktrace
0 MYAPP 0x00099c6a +[TFCrashHandler backtrace] + 46
1 MYAPP 0x0009a007 TFSignalHandler + 45
2 libSystem.B.dylib 0x9455345b _sigtramp + 43
3 ??? 0xffffffff 0x0 + 4294967295
4 MapKit 0x015f5124 -[MKQuadTrie contains:] + 40
5 MapKit 0x0156363c -[MKAnnotationContainerView addAnnotation:] + 356
6 MapKit 0x01538807 -[MKMapView addAnnotation:] + 115
Make sure that all annotations you're trying to add has sane coordinates, as this is a common source of crashes when adding them to an MKMapView.
Latitudes should be between -90 and 90 and longitudes should be between -180 and 180.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With