我正在使用iphone模拟器4.2并尝试显示或NSLog
标题和其他位置服务属性,例如纬度,经度,海拔高度,水平精度,垂直精度,速度。但它没有显示正确的参数和标题的标题实际上没有触发事件。
作为执行 CLLocation 代码
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
[self.delegate locationUpdate:newLocation];
}
并且未执行 CLHeading 代码
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
[self.delegate headingUpdate:newHeading];
}
当我在这两个代码上放置断点时,它永远不会触及 CLHeading 代码。我正在init中更新位置和标题。
- (id) init{
if (self!=nil) {
self.locationManager = [[[CLLocationManager alloc] init] autorelease];
self.locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyBest;
self.locationManager.distanceFilter = kCLDistanceFilterNone;
[self.locationManager startUpdatingLocation];
[self.locationManager startUpdatingHeading];
}
return self;
}
问题是我不知道这是由于模拟器还是代码有问题?
请帮忙。
答案 0 :(得分:15)
CLLocationManager
需要额外的硬件,因此无法在模拟器上运行。但是,您可以使用this other SO question中描述的方法对其进行测试。
某些位置服务需要在给定设备上存在特定硬件。例如,标题信息仅适用于包含硬件指南针的设备。此类定义了几种可用于确定当前可用服务的方法。
答案 1 :(得分:3)
对于使用Xcode 4.2的任何人,都可以更新此答案。它仍处于测试状态,但如果您是付费开发者,则可以访问它。此外,如果您是付费开发人员,WWDC 2011中有一些很好的视频可以解释如何使用模拟器进行位置模拟。
查看核心位置的新功能,并在不离开主席的情况下测试位置感知应用程序
**注意:请再次注意,只有付费开发者才能访问这些视频
答案 2 :(得分:2)
默认情况下,行为似乎如此 它会激发位置但不会前进。
我没有在实际的硬件中测试我的应用程序以确认我的...
Anthony Desa