Xcode Debug真正的iPhone设备使用CLLocation无法获取位置更新

时间:2015-08-18 09:40:59

标签: ios cllocationmanager

- (void)viewDidLoad {
    [super viewDidLoad];   

    self.clm = [[CLLocationManager alloc] init];

    [_clm setDelegate:self];

    _clm.desiredAccuracy = kCLLocationAccuracyBest;

    _clm.distanceFilter = kCLDistanceFilterNone;

    [_clm requestAlwaysAuthorization];

    [_clm startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager
    didUpdateLocations:(NSArray *)locations
{
    NSLog(@"%@",locations);

    CLLocation *location = [_clm location];

    NSString *string = [NSString stringWithFormat:@"%f,%f",location.coordinate.latitude,location.coordinate.longitude];

    [_nowFiled setText:string];
}

当我启用模拟位置时,我可以更新位置。当我禁用模拟位置时,我无法更新位置。

  • 怎么能修好这个?
  • 如何调用委托方法?
  • 我错过了什么吗?
  • 也许需要时间来获取位置?

2 个答案:

答案 0 :(得分:0)

偶尔(并非总是),它会调用错误: 操作无法完成(KCLErrorDomain错误0)

我在Location Manager Error : (KCLErrorDomain error 0)找到了解决方案。

Scheme-> Edit Scheme-> Run-> check out(Not check)" Allow Location Simulation"。

问题解决了。

答案 1 :(得分:0)

附加真实设备进行调试时:

  • 设备将继承Debug>下的位置调试设置。模拟位置。
  • 如果您将其设置为"不要模拟位置"然后附加的设备将使用GPS / WiFi返回的真实位置(如果设备有能力)。
  • 如果您选择任何其他设置(位置),附加的设备将不会使用它的真实位置,而是会模拟所选的位置。

如果您停用核心位置"允许位置模拟"在产品>下架构>编辑架构您将无法在首次亮相时模拟位置,但是,如果连接的设备支持位置,将使用真实的设备位置。