如何在iphone sdk的模拟器中获取用户当前位置?

时间:2012-01-25 05:51:28

标签: iphone mkmapview

我从这个方法获取用户位置

/*Region and Zoom*/
MKCoordinateRegion region;
MKCoordinateSpan span;
span.latitudeDelta=0.2;
span.longitudeDelta=0.2;

CLLocation *location1 = [locationManager location];

CLLocationCoordinate2D location = [location1 coordinate];

location.latitude = location.latitude;
location.longitude = location.longitude;
region.span=span;
region.center = location;

/*Geocoder Stuff*/

MKReverseGeocoder *geoCoder=[[MKReverseGeocoder alloc] initWithCoordinate:location];
geoCoder.delegate = self;
[geoCoder start];
mapView.showsUserLocation = TRUE;

[mapView setRegion:region animated:TRUE];
[mapView regionThatFits:region];

这很有效,但是当我尝试在模拟器中运行此代码时,它会在[mapView setRegion:region animated:TRUE];处崩溃,这表明它没有得到纬度和经度值。那么如何才能让这个代码在模拟器中完美运行。

我必须在模拟器中运行此代码,是否可能?

2 个答案:

答案 0 :(得分:14)

默认情况下,在iOS5模拟器上,它会在美国显示一些位置。如果要更改该位置,请在iOS模拟器菜单中转到Debug - >位置 - >自定义位置。 在那里,您可以设置纬度和经度,并相应地测试应用程序。这适用于mapkit以及CLLocationManager。

答案 1 :(得分:10)

试试这条路 -

转到产品 - >编辑方案 - >选项 - >选择允许位置模拟

它不是您的确切位置!但至少你可以验证你的代码是否正常工作。