-2

我想接收用户当前位置的坐标,我输入了以下代码:

-(void)update{
    locationManager = [[CLLocationManager alloc] init];
    locationManager.distanceFilter = kCLDistanceFilterNone; // whenever we move
    locationManager.desiredAccuracy = kCLLocationAccuracyBest;
    locationManager.delegate = self;
    mapView.showsUserLocation = YES;
    [locationManager startUpdatingLocation];
}

在 iOS Simulator 上,此代码正在崩溃,而在我的设备上却没有,或者有时它会导致整个应用程序崩溃......你能帮我看看发生了什么吗?

4

2 回答 2

1

看起来您可能没有实现CLLocationManagerDelegate方法。

特别是-locationManager:didUpdateLocations:(从 iOS 6 开始)或-locationManager:didUpdateToLocation:fromLocation:在以前的 iOS 版本中。

也许(同样你的问题很模糊)你只想在地图视图上显示蓝点。在这种情况下,您不需要处理核心位置管理器。查看这篇文章了解更多信息。

于 2013-05-31T05:57:24.313 回答
1

首先,您无法在模拟器中获得当前位置。并尝试使用此代码获取当前位置的坐标。

CLLocationManager *locationManager = [[CLLocationManager alloc] init];
    if ([CLLocationManager locationServicesEnabled])
    {
        locationManager.delegate = self;
        locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        locationManager.distanceFilter = kCLDistanceFilterNone;
        [locationManager startUpdatingLocation];
    }

    location = [locationManager location];
    CLLocationCoordinate2D coordinate = [location coordinate];;
    MKCoordinateRegion region;
    region.center=coordinate;
    MKCoordinateSpan span;
    span.latitudeDelta=10.015;
    span.longitudeDelta=10.015;
    region.span=span;
    [mapView setRegion:region];

    NSString *str=[[NSString alloc] initWithFormat:@" latitude:%f longitude:%f",coordinate.latitude,coordinate.longitude];
    NSLog(@"%@",str);
于 2013-05-31T06:05:03.420 回答