Просто почувствовал эту странную проблему, специфичную для iOS 6. Я использовал следующие коды для привязки заданного набора адресов на iPhone карте, и он отлично работал с Ios 4 и 5. Но сбои при работе на IOS 6 со следующей трассировки стека,iOS 6 Сбой при вызове 'setRegion' с недопустимым аргументом
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid Region <center:+0.00000000, +0.00000000 span:+177.61462012, +900.00000000>'
код, я использую это просто, как это может быть,
`CLLocationCoordinate2D topLeftCoord; topLeftCoord.latitude = -90; topLeftCoord.longitude = 180;
CLLocationCoordinate2D bottomRightCoord;
bottomRightCoord.latitude = 90;
bottomRightCoord.longitude = -180;
for (id<MKAnnotation> annotation in self.mapView.annotations) {
topLeftCoord.longitude = fmin(topLeftCoord.longitude, annotation.coordinate.longitude);
topLeftCoord.latitude = fmax(topLeftCoord.latitude, annotation.coordinate.latitude);
bottomRightCoord.longitude = fmax(bottomRightCoord.longitude, annotation.coordinate.longitude);
bottomRightCoord.latitude = fmin(bottomRightCoord.latitude, annotation.coordinate.latitude);
}
region.span.latitudeDelta = fabs(topLeftCoord.latitude - bottomRightCoord.latitude) * 1.5;
region.span.longitudeDelta = fabs(bottomRightCoord.longitude - topLeftCoord.longitude) * 1.5;
region = [self.mapView regionThatFits:region];
[self.mapView setRegion:region animated:YES];
`
Так что вопрос явно с расчетом longitudeDelta я считаю, как он пытается получить доступ к неправильно долготе +900.000. Поэтому я изменил код выше
в
region.span.latitudeDelta= self.mapView.region.span.latitudeDelta /2.0002; region.span.longitudeDelta= self.mapView.region.span.longitudeDelta /2.0002;
И авария получает решена, но карта указывает на другое место в мире. Надеюсь, что один может пролить некоторые экспертные знания по этим
Ваша проблема заключается в вычитании нескольких цифр.Поместите некоторые точки останова в инструкции NSLog и посмотрите, где ваша конечная строка дает вам плохие номера. Разделите каждый элемент на локальные переменные, и это будет проще. – Jessedc
Я думаю, что проблема заключается в том, что областьThatFits вызывается с областью 0 –