我使用了Mac OS X 10.9.3和Xcode 5.1.1
在我的应用程序中,我必须使用MKMapView
,一切都很好,但在iOS 6.1中,我在控制台中显示了奇怪的错误,比如
Can't render polygon (can't reserve indicies: 1482): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 570): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 30): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 390): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 330): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 18): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 30): featureID: 0 key: 0.0.1 (512)
Can't render polygon (can't reserve indicies: 18): featureID: 0 key: 0.0.1 (512)
就像这个问题。
我想知道这个错误,为什么它会在iOS 6.1中显示,以及如何解决它
我的代码是:
self.mapView = [[MKMapView alloc] init];
self.mapView.frame = CGRectMake(30, 30, 140, 105);
[self.mapView setMapType:MKMapTypeStandard];
[self.mapView setZoomEnabled:YES];
[self.mapView setScrollEnabled:YES];
[self.mapView setDelegate:self];
self.mapView.layer.borderWidth = 1;
self.mapView.layer.borderColor = [UIColor lightGrayColor].CGColor;
[self.scrollView addSubview:self.mapView];
self.pointAnnotation = [[MKPointAnnotation alloc] init];
[self setMAPAnnotationAndCallout]; /// custom method for set annotation pin and callout
-(void)setMAPAnnotationAndCallout
{
CLLocationCoordinate2D theCoordinate ;
theCoordinate.latitude = [[self.dicOfMAP objectForKey:@"latitude"] doubleValue];
theCoordinate.longitude = [[self.dicOfMAP objectForKey:@"longitude"] doubleValue];
self.pointAnnotation.coordinate = theCoordinate;
self.pointAnnotation.title = @"Title";
self.pointAnnotation.subtitle = @"SubTitle";
int region = 8000;
MKCoordinateRegion adjustedRegion = [self.mapView regionThatFits:MKCoordinateRegionMakeWithDistance(theCoordinate, region, region)];
[self.mapView setRegion:adjustedRegion animated:YES];
}
#pragma mark -
#pragma mark - MKMapView Delegate Methods
- (void)mapView:(MKMapView *)mapView didAddAnnotationViews:(NSArray *)views
{
MKAnnotationView *aV;
for (aV in views)
{
CGRect endFrame = aV.frame;
aV.frame = CGRectMake(aV.frame.origin.x, aV.frame.origin.y - 230.0, aV.frame.size.width, aV.frame.size.height);
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.70];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[aV setFrame:endFrame];
[UIView commitAnimations];
}
}
- (MKAnnotationView *)mapView:(MKMapView *)sender viewForAnnotation:(id < MKAnnotation >)annotation
{
static NSString *reuseId = @"StandardPin";
MKPinAnnotationView *aView = (MKPinAnnotationView *)[sender dequeueReusableAnnotationViewWithIdentifier:reuseId];
if (aView == nil)
{
aView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:reuseId];
aView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
aView.canShowCallout = YES;
}
aView.annotation = annotation;
return aView;
}
- (void)mapView:(MKMapView *)mapView didSelectAnnotationView:(MKAnnotationView *)view
{
[mapView deselectAnnotation:view.annotation animated:YES];
}
我在iOS 6.1上的控制台中也有相同的输出。
在我的案例中,问题是我试图根据坐标(0.0000000,0.000000(缩小地图,但只有在我第一次打开地图时,它才产生了奇怪的渲染问题重新打开地图后,它工作正常。但当坐标不是(0.0000000,0.000000(时,它总是有效的。
也许你应该检查theCoordinate
的值是否是你想要的。