2

コードに「キャッチされなかった例外「NSInvalidArgumentException」、理由:「無効な領域」が原因でアプリを終了しています」というエラーが表示されます。これは次のコードです。

- (MKCoordinateRegion)region
{
    MKCoordinateSpan span;
    span.latitudeDelta = (maxLat + 90) - (minLat + 90);
    span.longitudeDelta = (maxLon + 180) - (minLon + 180);

    NSLog(@"value of lat delta %f",span.latitudeDelta);
    NSLog(@"value of long delta %f",span.longitudeDelta);

    if(span.latitudeDelta == 0.0f)
    span.latitudeDelta = 0.1f;
    if(span.longitudeDelta == 0.0f)
    span.longitudeDelta = 0.1f;

    CLLocationCoordinate2D center;
    center.latitude = minLat + span.latitudeDelta / 2;
    center.longitude = minLon + span.longitudeDelta / 2;

    return MKCoordinateRegionMake(center, span);
}

ここでは、center.latitudeとcenter.longitudeがゼロになり、クラッシュしています。maxlat、maxlon、minlat、minlonの値はmaxLat = -91、minLat = 91、maxLon = -181、minLon=181です。

4

2 に答える 2

0

私は同じ問題を抱えていて、緯度と経度の最大値を次のように設定できることを調査しました: minLat = -84 maxLat = 84 minLong = -179 maxLong = 179 そうしないと、あなたの場所はマップの境界外になり、呼び出しますsetRegion はクラッシュを引き起こす可能性があります。

于 2015-08-28T09:47:12.837 に答える