如何在iPhone模拟器中设置位置(因为它在CoreLocation服务中选取)?
从iOS 5开始,模拟器具有可配置的位置.
在Debug菜单下,最后一个条目是"Location"; 这为您提供了一个子菜单:
没有
自定义位置
Apple商店
苹果
城市自行车骑
城市奔跑
高速公路
自定义位置可让您输入纬度/经度值.骑自行车,城市奔跑和高速公路驾驶模拟移动位置(当然在库比蒂诺).
当然,这对于iOS 4(或更早版本)的调试没有任何帮助; 但这是一个明显的改进!
在iPhone模拟器中运行项目
在TextEdit文件中创建以下文件,例如将其命名为MyOffice.将扩展名设为.gpx
在Simulate区域的Xcode中选择 Add GPX File to Project...
将创建的文件从菜单添加到项目中.
现在,您可以在Simulate区域中查看您的位置:
在我的委托回调中,我检查我是否在模拟器(#if TARGET_ IPHONE_SIMULATOR
)中运行,如果是,我提供自己的,预先查找的,Lat/Long.据我所知,没有其他办法.
在iOS模拟器菜单中,转到调试 - >位置 - >自定义位置.在那里,您可以设置纬度和经度,并相应地测试应用程序.这适用于mapkit以及CLLocationManager.
在iOS 5之前,您可以在代码中执行此操作:
我@implementation
在我需要我的假标题和位置数据的类之前使用这个片段.
#if (TARGET_IPHONE_SIMULATOR) @interface MyHeading : CLHeading -(CLLocationDirection) magneticHeading; -(CLLocationDirection) trueHeading; @end @implementation MyHeading -(CLLocationDirection) magneticHeading { return 90; } -(CLLocationDirection) trueHeading { return 91; } @end @implementation CLLocationManager (TemporaryLocationFix) - (void)locationFix { CLLocation *location = [[CLLocation alloc] initWithLatitude:55.932 longitude:12.321]; [[self delegate] locationManager:self didUpdateToLocation:location fromLocation:nil]; id heading = [[MyHeading alloc] init]; [[self delegate] locationManager:self didUpdateHeading: heading]; } -(void)startUpdatingHeading { [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; } - (void)startUpdatingLocation { [self performSelector:@selector(locationFix) withObject:nil afterDelay:0.1]; } @end #endif
在iOS 5之后,只需在项目中包含一个GPX文件,以便不断更新位置Hillerød.gpx:
我使用GPSies.com为gpx数据创建基本文件.但是需要进行一些清理.
通过运行模拟器并选择文件来激活
http://castleandersen.dk/keepers/location.png