我使用 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];
}
答案 0 :(得分:5)
我在iOS 6.1的控制台中也有相同的输出。
在我的情况下,问题是我试图根据坐标(0.00000,0.00000)缩小地图,并且仅在我第一次打开地图时才创建奇怪的渲染问题。 / strong>重新打开地图后,它正常工作。 但是当坐标不是(0.00000,0.00000)时,它总是有效。
也许您应该检查theCoordinate
的值是否是您想要的值。