0
私は多分5つの注釈(現在は)でMKMapviewを読み込んでいます。アノテーションも正しくロードされます。各注釈には、正しい左右の吹き出しが含まれています。しかし、しばらく(多分2分)私は、多くの場合、EXC_BAD_ACCESSのクラッシュを取得し、注釈の左側コールアウトの...iphone mkannotation:地図がロードされた後、左の吹き出しに関する警告
- (MKAnnotationView *) mapView:(MKMapView *)thisMapView
viewForAnnotation:(MapAnnotations *)annotation
{
static NSString *MapIdentifier = @"MapIdentifier";
UIImageView *myImageView;
MKPinAnnotationView *annotationView = (MKPinAnnotationView *)[thisMapView dequeueReusableAnnotationViewWithIdentifier:MapIdentifier];
if(annotationView == nil)
{
NSString * id = [NSString stringWithFormat:@"%d", (annotation).tag];
NSString * postPhoto = [NSString stringWithFormat:@"id=%@",id];
NSString * hostStrPhoto = @"http://domain.com/get_image.php?";
hostStrPhoto = [hostStrPhoto stringByAppendingString:postPhoto];
NSData *imgData = [NSData dataWithContentsOfURL:[NSURL URLWithString:hostStrPhoto]];
myImageView = [[UIImageView alloc] initWithImage:[UIImage imageWithData: imgData]];
myImageView.frame = CGRectMake(0,0,31,31);
annotationView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:MapIdentifier] autorelease];
}
annotationView.animatesDrop=TRUE;
annotationView.canShowCallout = YES;
annotationView.leftCalloutAccessoryView = myImageView; //<--where I am getting the error, after all the annotations have loaded.
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
return annotationView;
[myImageView autorelease];
}
後、私は多分、私のアプリはまだ注釈をロードしようとしている考えていますしかし、私は理由を理解できません。同様に地図がロードされているときにいくつかのメモリ警告が表示されるため、おそらく私はいくつかのオブジェクトをリリースしていないでしょう、私はメモリ管理の仕組みにまだまだ新しいことがあるので、
これは現在かなりうまく機能しています。これまでのところクラッシュしない:) – amanda